{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.datasets import load_boston"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "data=load_boston()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['DESCR', 'data', 'feature_names', 'filename', 'target']"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dir(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD',\n",
       "       'TAX', 'PTRATIO', 'B', 'LSTAT'], dtype='<U7')"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['feature_names']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([6.575, 6.421, 7.185, 6.998, 7.147, 6.43 , 6.012, 6.172, 5.631,\n",
       "       6.004, 6.377, 6.009, 5.889, 5.949, 6.096, 5.834, 5.935, 5.99 ,\n",
       "       5.456, 5.727, 5.57 , 5.965, 6.142, 5.813, 5.924, 5.599, 5.813,\n",
       "       6.047, 6.495, 6.674, 5.713, 6.072, 5.95 , 5.701, 6.096, 5.933,\n",
       "       5.841, 5.85 , 5.966, 6.595, 7.024, 6.77 , 6.169, 6.211, 6.069,\n",
       "       5.682, 5.786, 6.03 , 5.399, 5.602, 5.963, 6.115, 6.511, 5.998,\n",
       "       5.888, 7.249, 6.383, 6.816, 6.145, 5.927, 5.741, 5.966, 6.456,\n",
       "       6.762, 7.104, 6.29 , 5.787, 5.878, 5.594, 5.885, 6.417, 5.961,\n",
       "       6.065, 6.245, 6.273, 6.286, 6.279, 6.14 , 6.232, 5.874, 6.727,\n",
       "       6.619, 6.302, 6.167, 6.389, 6.63 , 6.015, 6.121, 7.007, 7.079,\n",
       "       6.417, 6.405, 6.442, 6.211, 6.249, 6.625, 6.163, 8.069, 7.82 ,\n",
       "       7.416, 6.727, 6.781, 6.405, 6.137, 6.167, 5.851, 5.836, 6.127,\n",
       "       6.474, 6.229, 6.195, 6.715, 5.913, 6.092, 6.254, 5.928, 6.176,\n",
       "       6.021, 5.872, 5.731, 5.87 , 6.004, 5.961, 5.856, 5.879, 5.986,\n",
       "       5.613, 5.693, 6.431, 5.637, 6.458, 6.326, 6.372, 5.822, 5.757,\n",
       "       6.335, 5.942, 6.454, 5.857, 6.151, 6.174, 5.019, 5.403, 5.468,\n",
       "       4.903, 6.13 , 5.628, 4.926, 5.186, 5.597, 6.122, 5.404, 5.012,\n",
       "       5.709, 6.129, 6.152, 5.272, 6.943, 6.066, 6.51 , 6.25 , 7.489,\n",
       "       7.802, 8.375, 5.854, 6.101, 7.929, 5.877, 6.319, 6.402, 5.875,\n",
       "       5.88 , 5.572, 6.416, 5.859, 6.546, 6.02 , 6.315, 6.86 , 6.98 ,\n",
       "       7.765, 6.144, 7.155, 6.563, 5.604, 6.153, 7.831, 6.782, 6.556,\n",
       "       7.185, 6.951, 6.739, 7.178, 6.8  , 6.604, 7.875, 7.287, 7.107,\n",
       "       7.274, 6.975, 7.135, 6.162, 7.61 , 7.853, 8.034, 5.891, 6.326,\n",
       "       5.783, 6.064, 5.344, 5.96 , 5.404, 5.807, 6.375, 5.412, 6.182,\n",
       "       5.888, 6.642, 5.951, 6.373, 6.951, 6.164, 6.879, 6.618, 8.266,\n",
       "       8.725, 8.04 , 7.163, 7.686, 6.552, 5.981, 7.412, 8.337, 8.247,\n",
       "       6.726, 6.086, 6.631, 7.358, 6.481, 6.606, 6.897, 6.095, 6.358,\n",
       "       6.393, 5.593, 5.605, 6.108, 6.226, 6.433, 6.718, 6.487, 6.438,\n",
       "       6.957, 8.259, 6.108, 5.876, 7.454, 8.704, 7.333, 6.842, 7.203,\n",
       "       7.52 , 8.398, 7.327, 7.206, 5.56 , 7.014, 8.297, 7.47 , 5.92 ,\n",
       "       5.856, 6.24 , 6.538, 7.691, 6.758, 6.854, 7.267, 6.826, 6.482,\n",
       "       6.812, 7.82 , 6.968, 7.645, 7.923, 7.088, 6.453, 6.23 , 6.209,\n",
       "       6.315, 6.565, 6.861, 7.148, 6.63 , 6.127, 6.009, 6.678, 6.549,\n",
       "       5.79 , 6.345, 7.041, 6.871, 6.59 , 6.495, 6.982, 7.236, 6.616,\n",
       "       7.42 , 6.849, 6.635, 5.972, 4.973, 6.122, 6.023, 6.266, 6.567,\n",
       "       5.705, 5.914, 5.782, 6.382, 6.113, 6.426, 6.376, 6.041, 5.708,\n",
       "       6.415, 6.431, 6.312, 6.083, 5.868, 6.333, 6.144, 5.706, 6.031,\n",
       "       6.316, 6.31 , 6.037, 5.869, 5.895, 6.059, 5.985, 5.968, 7.241,\n",
       "       6.54 , 6.696, 6.874, 6.014, 5.898, 6.516, 6.635, 6.939, 6.49 ,\n",
       "       6.579, 5.884, 6.728, 5.663, 5.936, 6.212, 6.395, 6.127, 6.112,\n",
       "       6.398, 6.251, 5.362, 5.803, 8.78 , 3.561, 4.963, 3.863, 4.97 ,\n",
       "       6.683, 7.016, 6.216, 5.875, 4.906, 4.138, 7.313, 6.649, 6.794,\n",
       "       6.38 , 6.223, 6.968, 6.545, 5.536, 5.52 , 4.368, 5.277, 4.652,\n",
       "       5.   , 4.88 , 5.39 , 5.713, 6.051, 5.036, 6.193, 5.887, 6.471,\n",
       "       6.405, 5.747, 5.453, 5.852, 5.987, 6.343, 6.404, 5.349, 5.531,\n",
       "       5.683, 4.138, 5.608, 5.617, 6.852, 5.757, 6.657, 4.628, 5.155,\n",
       "       4.519, 6.434, 6.782, 5.304, 5.957, 6.824, 6.411, 6.006, 5.648,\n",
       "       6.103, 5.565, 5.896, 5.837, 6.202, 6.193, 6.38 , 6.348, 6.833,\n",
       "       6.425, 6.436, 6.208, 6.629, 6.461, 6.152, 5.935, 5.627, 5.818,\n",
       "       6.406, 6.219, 6.485, 5.854, 6.459, 6.341, 6.251, 6.185, 6.417,\n",
       "       6.749, 6.655, 6.297, 7.393, 6.728, 6.525, 5.976, 5.936, 6.301,\n",
       "       6.081, 6.701, 6.376, 6.317, 6.513, 6.209, 5.759, 5.952, 6.003,\n",
       "       5.926, 5.713, 6.167, 6.229, 6.437, 6.98 , 5.427, 6.162, 6.484,\n",
       "       5.304, 6.185, 6.229, 6.242, 6.75 , 7.061, 5.762, 5.871, 6.312,\n",
       "       6.114, 5.905, 5.454, 5.414, 5.093, 5.983, 5.983, 5.707, 5.926,\n",
       "       5.67 , 5.39 , 5.794, 6.019, 5.569, 6.027, 6.593, 6.12 , 6.976,\n",
       "       6.794, 6.03 ])"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['data'][:,5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/conda/lib/python3.7/importlib/_bootstrap.py:219: RuntimeWarning: numpy.ufunc size changed, may indicate binary incompatibility. Expected 192 from C header, got 216 from PyObject\n",
      "  return f(*args, **kwds)\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "dataframe = pd.DataFrame(data['data'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "dataframe.columns = data['feature_names']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "dataframe['price']=data['target']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CRIM</th>\n",
       "      <th>ZN</th>\n",
       "      <th>INDUS</th>\n",
       "      <th>CHAS</th>\n",
       "      <th>NOX</th>\n",
       "      <th>RM</th>\n",
       "      <th>AGE</th>\n",
       "      <th>DIS</th>\n",
       "      <th>RAD</th>\n",
       "      <th>TAX</th>\n",
       "      <th>PTRATIO</th>\n",
       "      <th>B</th>\n",
       "      <th>LSTAT</th>\n",
       "      <th>price</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.00632</td>\n",
       "      <td>18.0</td>\n",
       "      <td>2.31</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.538</td>\n",
       "      <td>6.575</td>\n",
       "      <td>65.2</td>\n",
       "      <td>4.0900</td>\n",
       "      <td>1.0</td>\n",
       "      <td>296.0</td>\n",
       "      <td>15.3</td>\n",
       "      <td>396.90</td>\n",
       "      <td>4.98</td>\n",
       "      <td>24.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.02731</td>\n",
       "      <td>0.0</td>\n",
       "      <td>7.07</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.469</td>\n",
       "      <td>6.421</td>\n",
       "      <td>78.9</td>\n",
       "      <td>4.9671</td>\n",
       "      <td>2.0</td>\n",
       "      <td>242.0</td>\n",
       "      <td>17.8</td>\n",
       "      <td>396.90</td>\n",
       "      <td>9.14</td>\n",
       "      <td>21.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.02729</td>\n",
       "      <td>0.0</td>\n",
       "      <td>7.07</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.469</td>\n",
       "      <td>7.185</td>\n",
       "      <td>61.1</td>\n",
       "      <td>4.9671</td>\n",
       "      <td>2.0</td>\n",
       "      <td>242.0</td>\n",
       "      <td>17.8</td>\n",
       "      <td>392.83</td>\n",
       "      <td>4.03</td>\n",
       "      <td>34.7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.03237</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.18</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.458</td>\n",
       "      <td>6.998</td>\n",
       "      <td>45.8</td>\n",
       "      <td>6.0622</td>\n",
       "      <td>3.0</td>\n",
       "      <td>222.0</td>\n",
       "      <td>18.7</td>\n",
       "      <td>394.63</td>\n",
       "      <td>2.94</td>\n",
       "      <td>33.4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.06905</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.18</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.458</td>\n",
       "      <td>7.147</td>\n",
       "      <td>54.2</td>\n",
       "      <td>6.0622</td>\n",
       "      <td>3.0</td>\n",
       "      <td>222.0</td>\n",
       "      <td>18.7</td>\n",
       "      <td>396.90</td>\n",
       "      <td>5.33</td>\n",
       "      <td>36.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>501</th>\n",
       "      <td>0.06263</td>\n",
       "      <td>0.0</td>\n",
       "      <td>11.93</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.573</td>\n",
       "      <td>6.593</td>\n",
       "      <td>69.1</td>\n",
       "      <td>2.4786</td>\n",
       "      <td>1.0</td>\n",
       "      <td>273.0</td>\n",
       "      <td>21.0</td>\n",
       "      <td>391.99</td>\n",
       "      <td>9.67</td>\n",
       "      <td>22.4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>502</th>\n",
       "      <td>0.04527</td>\n",
       "      <td>0.0</td>\n",
       "      <td>11.93</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.573</td>\n",
       "      <td>6.120</td>\n",
       "      <td>76.7</td>\n",
       "      <td>2.2875</td>\n",
       "      <td>1.0</td>\n",
       "      <td>273.0</td>\n",
       "      <td>21.0</td>\n",
       "      <td>396.90</td>\n",
       "      <td>9.08</td>\n",
       "      <td>20.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>503</th>\n",
       "      <td>0.06076</td>\n",
       "      <td>0.0</td>\n",
       "      <td>11.93</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.573</td>\n",
       "      <td>6.976</td>\n",
       "      <td>91.0</td>\n",
       "      <td>2.1675</td>\n",
       "      <td>1.0</td>\n",
       "      <td>273.0</td>\n",
       "      <td>21.0</td>\n",
       "      <td>396.90</td>\n",
       "      <td>5.64</td>\n",
       "      <td>23.9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>504</th>\n",
       "      <td>0.10959</td>\n",
       "      <td>0.0</td>\n",
       "      <td>11.93</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.573</td>\n",
       "      <td>6.794</td>\n",
       "      <td>89.3</td>\n",
       "      <td>2.3889</td>\n",
       "      <td>1.0</td>\n",
       "      <td>273.0</td>\n",
       "      <td>21.0</td>\n",
       "      <td>393.45</td>\n",
       "      <td>6.48</td>\n",
       "      <td>22.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>505</th>\n",
       "      <td>0.04741</td>\n",
       "      <td>0.0</td>\n",
       "      <td>11.93</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.573</td>\n",
       "      <td>6.030</td>\n",
       "      <td>80.8</td>\n",
       "      <td>2.5050</td>\n",
       "      <td>1.0</td>\n",
       "      <td>273.0</td>\n",
       "      <td>21.0</td>\n",
       "      <td>396.90</td>\n",
       "      <td>7.88</td>\n",
       "      <td>11.9</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>506 rows × 14 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        CRIM    ZN  INDUS  CHAS    NOX     RM   AGE     DIS  RAD    TAX  \\\n",
       "0    0.00632  18.0   2.31   0.0  0.538  6.575  65.2  4.0900  1.0  296.0   \n",
       "1    0.02731   0.0   7.07   0.0  0.469  6.421  78.9  4.9671  2.0  242.0   \n",
       "2    0.02729   0.0   7.07   0.0  0.469  7.185  61.1  4.9671  2.0  242.0   \n",
       "3    0.03237   0.0   2.18   0.0  0.458  6.998  45.8  6.0622  3.0  222.0   \n",
       "4    0.06905   0.0   2.18   0.0  0.458  7.147  54.2  6.0622  3.0  222.0   \n",
       "..       ...   ...    ...   ...    ...    ...   ...     ...  ...    ...   \n",
       "501  0.06263   0.0  11.93   0.0  0.573  6.593  69.1  2.4786  1.0  273.0   \n",
       "502  0.04527   0.0  11.93   0.0  0.573  6.120  76.7  2.2875  1.0  273.0   \n",
       "503  0.06076   0.0  11.93   0.0  0.573  6.976  91.0  2.1675  1.0  273.0   \n",
       "504  0.10959   0.0  11.93   0.0  0.573  6.794  89.3  2.3889  1.0  273.0   \n",
       "505  0.04741   0.0  11.93   0.0  0.573  6.030  80.8  2.5050  1.0  273.0   \n",
       "\n",
       "     PTRATIO       B  LSTAT  price  \n",
       "0       15.3  396.90   4.98   24.0  \n",
       "1       17.8  396.90   9.14   21.6  \n",
       "2       17.8  392.83   4.03   34.7  \n",
       "3       18.7  394.63   2.94   33.4  \n",
       "4       18.7  396.90   5.33   36.2  \n",
       "..       ...     ...    ...    ...  \n",
       "501     21.0  391.99   9.67   22.4  \n",
       "502     21.0  396.90   9.08   20.6  \n",
       "503     21.0  396.90   5.64   23.9  \n",
       "504     21.0  393.45   6.48   22.0  \n",
       "505     21.0  396.90   7.88   11.9  \n",
       "\n",
       "[506 rows x 14 columns]"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dataframe"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD',\n",
       "       'TAX', 'PTRATIO', 'B', 'LSTAT'], dtype='<U7')"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['feature_names']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX',\n",
       "       'PTRATIO', 'B', 'LSTAT', 'price'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dataframe.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CRIM</th>\n",
       "      <th>ZN</th>\n",
       "      <th>INDUS</th>\n",
       "      <th>CHAS</th>\n",
       "      <th>NOX</th>\n",
       "      <th>RM</th>\n",
       "      <th>AGE</th>\n",
       "      <th>DIS</th>\n",
       "      <th>RAD</th>\n",
       "      <th>TAX</th>\n",
       "      <th>PTRATIO</th>\n",
       "      <th>B</th>\n",
       "      <th>LSTAT</th>\n",
       "      <th>price</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>CRIM</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.200469</td>\n",
       "      <td>0.406583</td>\n",
       "      <td>-0.055892</td>\n",
       "      <td>0.420972</td>\n",
       "      <td>-0.219247</td>\n",
       "      <td>0.352734</td>\n",
       "      <td>-0.379670</td>\n",
       "      <td>0.625505</td>\n",
       "      <td>0.582764</td>\n",
       "      <td>0.289946</td>\n",
       "      <td>-0.385064</td>\n",
       "      <td>0.455621</td>\n",
       "      <td>-0.388305</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ZN</th>\n",
       "      <td>-0.200469</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.533828</td>\n",
       "      <td>-0.042697</td>\n",
       "      <td>-0.516604</td>\n",
       "      <td>0.311991</td>\n",
       "      <td>-0.569537</td>\n",
       "      <td>0.664408</td>\n",
       "      <td>-0.311948</td>\n",
       "      <td>-0.314563</td>\n",
       "      <td>-0.391679</td>\n",
       "      <td>0.175520</td>\n",
       "      <td>-0.412995</td>\n",
       "      <td>0.360445</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>INDUS</th>\n",
       "      <td>0.406583</td>\n",
       "      <td>-0.533828</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.062938</td>\n",
       "      <td>0.763651</td>\n",
       "      <td>-0.391676</td>\n",
       "      <td>0.644779</td>\n",
       "      <td>-0.708027</td>\n",
       "      <td>0.595129</td>\n",
       "      <td>0.720760</td>\n",
       "      <td>0.383248</td>\n",
       "      <td>-0.356977</td>\n",
       "      <td>0.603800</td>\n",
       "      <td>-0.483725</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CHAS</th>\n",
       "      <td>-0.055892</td>\n",
       "      <td>-0.042697</td>\n",
       "      <td>0.062938</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.091203</td>\n",
       "      <td>0.091251</td>\n",
       "      <td>0.086518</td>\n",
       "      <td>-0.099176</td>\n",
       "      <td>-0.007368</td>\n",
       "      <td>-0.035587</td>\n",
       "      <td>-0.121515</td>\n",
       "      <td>0.048788</td>\n",
       "      <td>-0.053929</td>\n",
       "      <td>0.175260</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NOX</th>\n",
       "      <td>0.420972</td>\n",
       "      <td>-0.516604</td>\n",
       "      <td>0.763651</td>\n",
       "      <td>0.091203</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.302188</td>\n",
       "      <td>0.731470</td>\n",
       "      <td>-0.769230</td>\n",
       "      <td>0.611441</td>\n",
       "      <td>0.668023</td>\n",
       "      <td>0.188933</td>\n",
       "      <td>-0.380051</td>\n",
       "      <td>0.590879</td>\n",
       "      <td>-0.427321</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RM</th>\n",
       "      <td>-0.219247</td>\n",
       "      <td>0.311991</td>\n",
       "      <td>-0.391676</td>\n",
       "      <td>0.091251</td>\n",
       "      <td>-0.302188</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.240265</td>\n",
       "      <td>0.205246</td>\n",
       "      <td>-0.209847</td>\n",
       "      <td>-0.292048</td>\n",
       "      <td>-0.355501</td>\n",
       "      <td>0.128069</td>\n",
       "      <td>-0.613808</td>\n",
       "      <td>0.695360</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>AGE</th>\n",
       "      <td>0.352734</td>\n",
       "      <td>-0.569537</td>\n",
       "      <td>0.644779</td>\n",
       "      <td>0.086518</td>\n",
       "      <td>0.731470</td>\n",
       "      <td>-0.240265</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.747881</td>\n",
       "      <td>0.456022</td>\n",
       "      <td>0.506456</td>\n",
       "      <td>0.261515</td>\n",
       "      <td>-0.273534</td>\n",
       "      <td>0.602339</td>\n",
       "      <td>-0.376955</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>DIS</th>\n",
       "      <td>-0.379670</td>\n",
       "      <td>0.664408</td>\n",
       "      <td>-0.708027</td>\n",
       "      <td>-0.099176</td>\n",
       "      <td>-0.769230</td>\n",
       "      <td>0.205246</td>\n",
       "      <td>-0.747881</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.494588</td>\n",
       "      <td>-0.534432</td>\n",
       "      <td>-0.232471</td>\n",
       "      <td>0.291512</td>\n",
       "      <td>-0.496996</td>\n",
       "      <td>0.249929</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RAD</th>\n",
       "      <td>0.625505</td>\n",
       "      <td>-0.311948</td>\n",
       "      <td>0.595129</td>\n",
       "      <td>-0.007368</td>\n",
       "      <td>0.611441</td>\n",
       "      <td>-0.209847</td>\n",
       "      <td>0.456022</td>\n",
       "      <td>-0.494588</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.910228</td>\n",
       "      <td>0.464741</td>\n",
       "      <td>-0.444413</td>\n",
       "      <td>0.488676</td>\n",
       "      <td>-0.381626</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TAX</th>\n",
       "      <td>0.582764</td>\n",
       "      <td>-0.314563</td>\n",
       "      <td>0.720760</td>\n",
       "      <td>-0.035587</td>\n",
       "      <td>0.668023</td>\n",
       "      <td>-0.292048</td>\n",
       "      <td>0.506456</td>\n",
       "      <td>-0.534432</td>\n",
       "      <td>0.910228</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.460853</td>\n",
       "      <td>-0.441808</td>\n",
       "      <td>0.543993</td>\n",
       "      <td>-0.468536</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>PTRATIO</th>\n",
       "      <td>0.289946</td>\n",
       "      <td>-0.391679</td>\n",
       "      <td>0.383248</td>\n",
       "      <td>-0.121515</td>\n",
       "      <td>0.188933</td>\n",
       "      <td>-0.355501</td>\n",
       "      <td>0.261515</td>\n",
       "      <td>-0.232471</td>\n",
       "      <td>0.464741</td>\n",
       "      <td>0.460853</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.177383</td>\n",
       "      <td>0.374044</td>\n",
       "      <td>-0.507787</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>B</th>\n",
       "      <td>-0.385064</td>\n",
       "      <td>0.175520</td>\n",
       "      <td>-0.356977</td>\n",
       "      <td>0.048788</td>\n",
       "      <td>-0.380051</td>\n",
       "      <td>0.128069</td>\n",
       "      <td>-0.273534</td>\n",
       "      <td>0.291512</td>\n",
       "      <td>-0.444413</td>\n",
       "      <td>-0.441808</td>\n",
       "      <td>-0.177383</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.366087</td>\n",
       "      <td>0.333461</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LSTAT</th>\n",
       "      <td>0.455621</td>\n",
       "      <td>-0.412995</td>\n",
       "      <td>0.603800</td>\n",
       "      <td>-0.053929</td>\n",
       "      <td>0.590879</td>\n",
       "      <td>-0.613808</td>\n",
       "      <td>0.602339</td>\n",
       "      <td>-0.496996</td>\n",
       "      <td>0.488676</td>\n",
       "      <td>0.543993</td>\n",
       "      <td>0.374044</td>\n",
       "      <td>-0.366087</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.737663</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>price</th>\n",
       "      <td>-0.388305</td>\n",
       "      <td>0.360445</td>\n",
       "      <td>-0.483725</td>\n",
       "      <td>0.175260</td>\n",
       "      <td>-0.427321</td>\n",
       "      <td>0.695360</td>\n",
       "      <td>-0.376955</td>\n",
       "      <td>0.249929</td>\n",
       "      <td>-0.381626</td>\n",
       "      <td>-0.468536</td>\n",
       "      <td>-0.507787</td>\n",
       "      <td>0.333461</td>\n",
       "      <td>-0.737663</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             CRIM        ZN     INDUS      CHAS       NOX        RM       AGE  \\\n",
       "CRIM     1.000000 -0.200469  0.406583 -0.055892  0.420972 -0.219247  0.352734   \n",
       "ZN      -0.200469  1.000000 -0.533828 -0.042697 -0.516604  0.311991 -0.569537   \n",
       "INDUS    0.406583 -0.533828  1.000000  0.062938  0.763651 -0.391676  0.644779   \n",
       "CHAS    -0.055892 -0.042697  0.062938  1.000000  0.091203  0.091251  0.086518   \n",
       "NOX      0.420972 -0.516604  0.763651  0.091203  1.000000 -0.302188  0.731470   \n",
       "RM      -0.219247  0.311991 -0.391676  0.091251 -0.302188  1.000000 -0.240265   \n",
       "AGE      0.352734 -0.569537  0.644779  0.086518  0.731470 -0.240265  1.000000   \n",
       "DIS     -0.379670  0.664408 -0.708027 -0.099176 -0.769230  0.205246 -0.747881   \n",
       "RAD      0.625505 -0.311948  0.595129 -0.007368  0.611441 -0.209847  0.456022   \n",
       "TAX      0.582764 -0.314563  0.720760 -0.035587  0.668023 -0.292048  0.506456   \n",
       "PTRATIO  0.289946 -0.391679  0.383248 -0.121515  0.188933 -0.355501  0.261515   \n",
       "B       -0.385064  0.175520 -0.356977  0.048788 -0.380051  0.128069 -0.273534   \n",
       "LSTAT    0.455621 -0.412995  0.603800 -0.053929  0.590879 -0.613808  0.602339   \n",
       "price   -0.388305  0.360445 -0.483725  0.175260 -0.427321  0.695360 -0.376955   \n",
       "\n",
       "              DIS       RAD       TAX   PTRATIO         B     LSTAT     price  \n",
       "CRIM    -0.379670  0.625505  0.582764  0.289946 -0.385064  0.455621 -0.388305  \n",
       "ZN       0.664408 -0.311948 -0.314563 -0.391679  0.175520 -0.412995  0.360445  \n",
       "INDUS   -0.708027  0.595129  0.720760  0.383248 -0.356977  0.603800 -0.483725  \n",
       "CHAS    -0.099176 -0.007368 -0.035587 -0.121515  0.048788 -0.053929  0.175260  \n",
       "NOX     -0.769230  0.611441  0.668023  0.188933 -0.380051  0.590879 -0.427321  \n",
       "RM       0.205246 -0.209847 -0.292048 -0.355501  0.128069 -0.613808  0.695360  \n",
       "AGE     -0.747881  0.456022  0.506456  0.261515 -0.273534  0.602339 -0.376955  \n",
       "DIS      1.000000 -0.494588 -0.534432 -0.232471  0.291512 -0.496996  0.249929  \n",
       "RAD     -0.494588  1.000000  0.910228  0.464741 -0.444413  0.488676 -0.381626  \n",
       "TAX     -0.534432  0.910228  1.000000  0.460853 -0.441808  0.543993 -0.468536  \n",
       "PTRATIO -0.232471  0.464741  0.460853  1.000000 -0.177383  0.374044 -0.507787  \n",
       "B        0.291512 -0.444413 -0.441808 -0.177383  1.000000 -0.366087  0.333461  \n",
       "LSTAT   -0.496996  0.488676  0.543993  0.374044 -0.366087  1.000000 -0.737663  \n",
       "price    0.249929 -0.381626 -0.468536 -0.507787  0.333461 -0.737663  1.000000  "
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dataframe.corr()#x对f（x）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/conda/lib/python3.7/importlib/_bootstrap.py:219: RuntimeWarning: numpy.ufunc size changed, may indicate binary incompatibility. Expected 192 from C header, got 216 from PyObject\n",
      "  return f(*args, **kwds)\n"
     ]
    }
   ],
   "source": [
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f6c076d0a50>"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAEdCAYAAAAIIcBlAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOydd3iTVfvHPyfp3rtpKdgylVnKRhAKFBAVi4IylOUAZMsSUES2E1RUUEScOBAVX4GyFZC9h+xN94KOdCXn98cT2qRJ2hSiL6+/fK+r19Xk3Lmf+5znPM/Z36+QUuKAAw444IADt6D6bwfggAMOOODA3QVHw+CAAw444IAJHA2DAw444IADJnA0DA444IADDpjA0TA44IADDjhgAkfD4IADDjjggAkcDYMDDjjgwF0KIcRyIUSqEOK4lXQhhHhPCHFOCHFUCBFjj+s6GgYHHHDAgbsXK4DuFaQ/CNQx/D0PfGSPizoaBgcccMCBuxRSyj+AzApMHgW+kAp2A35CiLA7va6jYXDAAQcc+N9FNeCq0edrhu/uCE536uB/AcXpF+zC+zG32Sv2cAPA+E4pdvP1a4LGbr4Aej6Uajdfr28MspuvCU2v283XsIN+dvP1+dRIu/kiP99urnLWnLWbL4CRF33s5uuzR/V28zXkF/v1b1ddXiPu1EdV3jcuwbWGoUwB3cLHUsqPq3A5S/He8fvu/0XD4IADDjjwj0Gvs9nU0AhUpSEoj2tAdaPPEUDiHfgDHFNJDjjggAP2hdTb/nfnWAMMNOxOag3ckFIm3anT/1cjhpfnvcMfO/cS4O/Hz18tMUuXUjJ/0RK279qHm5src6dPoH692hX6fHDmQOrENqFYW8TPE5eSdPySSbqzmwt9PhpDQI1Q9Ho9ZzYdZNPr35n5cWrYArf+L4BKRfEf6yhc+63F6zk1b4/nyFfJfe0FdJfOWI2r+eynqdYpmhJtIbvGf0zmsUtmNk2m9KFmn3a4+HryXZ1nLfpRN2iOW98RCJWKou3rKVpvHjuAU0x7PEa8Qu6ckegvVzyF8dCrA6kXG02xtogfJy4h8YRpbM5uLvT7cCwB94Si1+k5tfkgG143Lw/npi3xeGY0qFQUbvqNgtXfWLyec5sOeE+exY2Jz6M7f9pqXENmPkdMbDMKtYV8MPFdLh6/YNV2yrLphNQIZULXMWZpOy+l8ea2v9DrIb5hBENb1jSz2XA6iSW7zyEQ1A32Zn6PJhavo4psgEvHvqBSUXJsOyX71pvZqOs2x7nNIyBBn36VorXLLPpyadkS71GjQK1G+9tv5H9jWl7uPXviHh8Pej1Sq+XmW2+hu3zZahkMnfkcTWObU6QtZPHERZWWV2gNDS92HW0e/30xuD32vFL3d22gaNMqk3Snlp1xjR+KzM4AoHj7fyjetcHqtewZ221Bb79pMiHESqAjECSEuAa8CjgDSCmXAGuBHsA5IB8YYo/r/mMNgxBCAywCWgCFwCVgHHAEOA24APuBZ6SUxUKIjsBEKeXDQojBwGdAFynlZoO/XsBqoI+U0rQmWUF8jzj6P96TabPfspi+fdc+rlxLZO13n3L0xClmv7WYlZ8ssuqvTmwTAqI0vNdhAhFNa/PQnCEsi3/VzO7Pj9dyaddJ1M5qBn4zjdodmwBGFVuocHt6NHlvTUFmpuE14wOKD/+JPvGKqSM3d1y79KLk/F8V5jO8UxO8ozT8cv8EgmJq0XL+YNY/PNPM7vrGg5z5bCM9d1ouD4QK9/6jyFv4EjIrHc/p71NyZBf6pHJxubrj0jmekgsVxwVQt2M0QVEa3un4ItWb1qbn3KEsiZ9hZrf9k9+4aCizoV9Pp27HJnDDaI1BpcLj+XHkzJyAPiMNnzeWUrR3J/pr5V5kbu64PfQ4JadPVBhX09hmhEWFMbrDcOo0rctzc0YwLX6SRduW3VtTkK+1mKbTSxZsOclHj7Ug1NuNAd/sokOtEGoFepXaXM7KY/m+C6x4sjU+bs5k5hdaDkoIXDr1p/DHhcicLNwGTEd3/ggys6xDKPxCcG75IAXfvg6F+eDubdmXSoX32LFkT5yILi2NgCVLKNy50+TFX7BpE9o1awBwbdsW75EjyZ48uYLyCmd0h2HUaVqP5+eMYKqV8mrVvQ0F+QVW8qjCrc8I8j94GZmdgcfEhZQc34M++aqJWcnB7RSuMu/M/a2x3SakfUYCBl+yXyXpEhhptwsa8I9MJQkhBPATsE1KWUtKWR+YBoQC56WU0UAjlPmxJ6y4OQYYF1JflEbFZjSPboSvj5UHB9i6Yzc9u3dGCEGThveRk5NLWrr1nWL14ppx5MftAFw7dA43Hw+8QkwXNYsLiri06yQAumIdSccv4aMJMLFR16yHPjURmZYEuhKK927Duen9Ztdz6zWYwnXfQXFRhfms3q0ZF1ftACD94HlcfD1xDzFfbE0/eB5tarZVP+qoeujTEpHpyUpc+37HKbqtmZ1r/CCKEr6vNC6A+7o249BqpcyuHjqHm7cH3sHmZXbRqMwST5iXmVOd+9AnXUefkgQlJRTt2IJLy3Zm1/Po/wwFP69EVhJbi7iW/P7jVgDOHjqDp48nfiH+ZnZuHm488uyj/Pj+Dxb9HE/OprqfBxF+HjirVXSrp2HbedONBj8du8YTTWrg4+YMQICHq0VfKk0UMjsNeSMd9DpKTu1DXSvatBwataf48FalUQDQ5lj05XzvveiuX0eXpJRXwZYtuN5vWsek0cK3cHODCrRaWsS1YltpeZ3Go4LyevjZR/nx/e8t5/GeuujTkpAZKaAroeTgHzg1am31urbAXrHdNvR62//uUvxTawyxQLFh6AOAlPIwRtuspJQ6YC/Wt1ptB1oKIZyFEF5AbeCwPYNMSctAE1K2iyY0JIiUtHSr9j6aAG4mZpR+vpmciU+oeQW8BTcfD+p1ieHiTtNDjMI/CJlZthNIn5mG8A80sVHVqI0qIISSI3sqzYe7xp88o7jyEjNx11iPyxqEXxD6zLTSzzIrDZVfubiq10LlH0zJ0crjAvAJ9edGYlljezM5E58KYnPz8eDezjGc32na4xcBQejSjcosIw1VoOkOKHVUHVRBIRTv31VpXAGaQDISy+51RnI6AaGBZnZPThjAr5/8QqHWci8/NbeQUG/30s+hXm6k5ZraXs7O40pWPoO/3c3AlbvYeSmtvBslj15+yJyyspK5WQhv00ZU+Iei8g/F9ckpuPabiiqygUVfquBg9Gll19GnpaEODjazc4+PJ/Drr/EaPpyc996z6AsgUBNIRmKZv8zkDAItlFffCQP49ZOfrZaXyi8QfbZRXNnpCF9zP05N2uIx5X3chk5F+FW8081esd02dMW2/92l+KcahobAgYoMhBBuQCvAfBJVgQQ2Ad1QDnWssWeAoKwxWIjL+g8sJFlTxFOpVTz+/ij2fJZA1tXyLwJLjkyCwL3fCLTf2jaUthjz7Sj1Wcy6kR8hcHtyOAU/2L6pwlJs1kJTqVU8+d4odq1YT9bVcltoLebRNN1j6EjyP/vwtuMqH1hk/Sg0kRr2Juy2yWeZc9OPOr3kSnYen/RpyfweTZi18Tg5BZZeEpXkERAqNcI/lMIf3qLot09wiRsEru7mv7MECwWv/flnMgYMIHfpUjyfftr6b22o+0p5hVW9vMr5KTm+l7zXhpL/+mh0pw/j9tT4in//d8ZmC/7Zxee/BXfD4nMtIcRhlCPdq6SURyuw/RYYA/gCE1CmoyxCCPE8hv3BH749h2cHVjhVB4AmJIjk1LJeY0pqOiFBpj2NFgPjaNY3FoDrRy/gE16W7qMJIMfK1MwjC54h82Iyu5ebt3syKw0REFL6WRUQXLrQBoCbB6pqkXi99LaSN98APMbMIv+9GaUL0HUHd6H2ACWujMMX8AwP5Fbz4xkegDbF+pSRNcisdFQBZb1K4R+MPttoas3NHVV4JJ4T3yyLa9Qs8hfPMFmAbvV0HC36KbFdO3IB3/CyaSEfTQA5KVkWrx8//1nSLybzp6Uyy0hDHWRUZoHB6DPL7p1w90BdIwrvOcoakcovAO9p88iZN610AbrbwB506RsHwLmj5wgML+uJBmqCyEw1nUasG1OPmo1q88GOj1E7qfEN9GXmt3PgSNlib4iXKyk5ZesPKbkFBHuaThWFeLnROMwXZ7WKar4eRPp7ciU7nwYaX9M85mYhvMvKSnj5I3NN76M+Jwt90gXQ65A305FZyaj8QtGnXDK1S0tDZTRCUAUHo0u3Phou2LIF7/GmL+DuA3vQuW9XAM4fPUtgeDCgrCsFaAItlNe91GxUiw93fILaSY1PoC+vfTuXV/tOL4srOwNnP6O4/IKQN8tN3+aXTY8V/5mAa8/BZvHaKza74C6eIrIV/1TDcALobSXtvJQy2nCMe5sQoqeU0uJoQEq5VwjRENBKKc9U1Js33h9s64GTju1as/LHX3mwSweOnjiFl5cnwUGmc9v7vtjIvi82AlCnUzQtB3Xl+JpdRDStTWGOllwLDUOniX1w9fZgzWTLu0V0F0+jDqmGCNIgs9JxbtmR/KXzygy0eeSMebz0o+eUtyn4bqnJrqQzKzZxZsUmAKp1jqbukDgu/byLoJhaFN3Mr3AtwRp0l06jMo6rRQe0yxYYxZVP7ot9Sj96THyTgh8+NtuVtOfLjez5UimzerHRtB7UlaNrdlHdUGY5aeaxdZmglNlPUz6xGFvJ2VOowiJQhWjQZ6bj0q4TeQtnl6bL/DyyBz1a+tl79iLyV3xksisp4Yu1JHyxFoCYTs3oPughdq7ZTp2mdcnPySM71bTB2vDVejZ8pTRSwREhvLT8ZWb2fdnkgFsDjS9XsvK5fiOfEC83Ek4nM//BxiZ+YmuHsP5UEj0bRJClLeJyVj7VfM17+frkSwi/EIRPEDI3C6d7W1BYbseR7vwhnOq1RHfyT3DzQviHor9hPjVVfPo06ogIVBoN+vR03Dp14sacOSY26mrV0F1XFvhdWrcu/f8W1n+xlvWl5dWcBwc9xM41f1CnaT3yc/ItlNc6Nny1rrS8pi5/xaRRANBfOYMqOBwREIq8kYFTzAMUfP6miY3w8UfeVHw7NWqFPsV0Ydqesa26fOcTEfZcfP5v4Z9qGLYA84QQz0kpPwEQQrQAPG4ZSCmThBAvAVOpeJpoKnBb2wgmvbqAfYeOkp19k87xT/HCM09TUlICwJO9HuKBNi3YvmsfDz4xFHc3N2ZPq3jIenbLYerERjPmj3co1hbxy8SlpWnD185jSY9p+GgCeGB0PGnnrjPsN6VHsveLDZBqtO1Tr0f79ft4TligbNnbvh594mVc4wehu3SGksOVz5Eb4/rmw4R3bsKjf75NibaIXePLpnp6bJzL2jjl4Wz6cl8i49vi5O5Cr/3vcX7lNo6+vdokroJvFuMxbh5CqCjamaDE1XMgustnKDlS9WH46a2HqRsbzYu/L6RYW8jqSWVlNmrtPBYbyix2dC9Sz11npKHMdn++Ac58bRSbjvxPFuH96lvKdtXNa9FdvYR7v6GUnDtF8b4/qxTXwS0HaBrbnPf/WEKRtpAPJr5fmvbm2oVM6lHJ9IUBTioVUzrV54XV+9FLyaMNIqgV5M2Hf56lfqgvHWuF0PaeIHZdTuexz7ejFoJxD9TDz93F3JnUU7T1G1wfHwdCUHJ8JzIjEee2PdEnX0Z34Qj6SyeQ9zTAbdBrIPUU/7EKCvLMfel05Lz7Lv5vvgkqFQXr1qG7dAnPIUMoOX2awj//xKNXL1yaNUPqdMicHG7Mn19Bee0nJrYZi/9YSqG2kA8nlq1HvLl2EZN6jLOpvNDrKVi1BI8XZil1f/dG9MlXcOkxAN2Vs+iO78W5Q0+cGrZUttHm51DwlfWdgnaN7XbxLxgxCGtz4na/kBDhKNtVm6G82C+hbFf9SUrZ0GAjUBaURwFqTLerNpdSjirncwXwn8q2qzooMaoGByVG1eCgxKg6/s2UGIVndtj8vnGt2+6Or/d34B9bY5BSJmJ5K2pDIxsJGJ/02Wb4fgUK/Wx5n4PtGKIDDjjgwJ3jLt5tZCvuhsVnBxxwwIF/D/4FU0mOhsEBBxxwwJ5wLD7/b8BeawPTD8yu3MhGtGk0yG6+Jgj7rhN1+c1+B35+a2C/dYH2f9qPumD/m/Xt5mvMjHN28yXvnDG5FJnSfmsCAHNdSuzmq//P9lsX+KLFTbv5sgscIwYHHHDAAQeMoZA4/G/D0TA44IADDtgTOvuNrP5b+H/ZMNiDKvvvoPCeOHss93duTYG2kJnj5nH6mDmt9tIf3yMoJJCCAmW6Z1TfFy0qwsbMHkh4pybotEXsHr+ULAu02/6NImm9aDhqN2cStxzh4CtfWIxrwuwxtO3UigJtIbPGz+f0MfNtkB+tWkRQaCCFhrhG951IVob5wTXn5i3xemE0QqVCu+43tN+ZUj+7PdwT9569lJO8Wi05C99Cd8U69fPUuS/yQOe2aLUFTB8zm7+OmdNqOzs7MX3+JFq0jUGv1/PefPP7tfN8Mm9sOIpeSnpFRzK0bT2T9Dc3HmWfgdOooERHZl4hOyY+YjWuvq8OoVFsDEXaQj6b+AFXTlw0sxn7+XR8Q/xQq9Wc3fcXX7/yKdKCyEu/V4fSKLYpRdoilk9cbNHXuM+n4xvij6rU1zKw0HF9ZuZzxMQ2p9BAR32hAjrqqQY66nEW6Kg92zcj9OVhCLWK7O8TyPjYlFQwYEgv/J7ohizRocu8QeLURZQkVrwN+vnXnqeZIbZ3Jyzi/PHzVm1f/vQVNDU0jIozJxZ1im6Jx9BRoFJTuPk3Cn+yQsfeugNek17j5uRhFdKxVxmONQb7w0CnXZ67ujEKteyHwBgp5fsG28XAfsN2VptwZ1TZZbA3hff9nVpTvWYEvdr2o2FMfaYumMDgh4ZZtH151Cz+OmJUkYXpXHKYgXb7P/dPIDCmNs3nD2Hjw+Z5bLFgKHsnLyPjwDk6fDWZsNgmJG01Jaxt26kV1aMiePz+ATSMqc+U+S8y9OERFuOaMXIOfx2t4AFTqfAePY7sKRPQp6fhv3gpRbt2mrz4C7dsouA/yvlGlzZt8Ro+khvTLFM/t+/clnuiqvNg6940btaQGW9Mpt+Dz5jZPT9uCJnpmTzUtg9CCHz9faBjs9J0nV4yf/0RlvRvR6iPOwOWb6VDnTBqBZeV66S4stPLK/ed51Sy9ZPkDTs2JSQqjOkdR1OzaR0GzH2O+fHm7C1LR75DQa5CnzH8owk0f6g1e3/daWLTyOBrmsHXU3OfZ178VDNfS4x8jfhoIs0fakPCmq0mNjEGOuqRHYZR10BH/VIFdNRaa3TUKhWamS9wZfB0ipPTifpxETlbdlN0ruxEcsHJ81zsNRZZUIhf/x6ETh7K9XELLPsDmsU2JzwynGEPPE+9pvUYMfcFJj46waJtm+5tKMizTHuOSoXHc2PJnTURfUYa3q8voXifZTp214ceo+TMSasx3TaqoOB2t+KuU3CTUv4kpYy+9YfSGGwHEoBUYKwQwsIxUdtgL6pse1N4d+jejrU/KHQLxw+exNvHi8AQc0ZIWxDRrRmXVil5zDh4DhdfD9zK5dEtxA9nb3cyDigLp5dWbSeiezMzXw90a8faVQllcfl6ERgSYGZnC5zq3Ycu8Tr6ZAP187YtuLQ1pco2pX52r1C9tlP3B1jzg0JrcPTAcbx9vAmyUGa9+j3CJ+99rviXkuzMGybpxxMzqR7gSYS/p0KVXT+CbWesi2CtO3GV7g0irKZHd23B7tW/A3Dh0Fk8vD3xDTY/UHfrRa52UuPk7GSRTDC6awt2rd5m5MvDJl+WnLU0oqM+c+g0nj6e+Fuho+757KOsskJH7d64LkWXEym+mgzFJdz87Q+8O7cxscnfcxRpGD1qD5/CSVPxQcfWXVux5cctAJyuJLb45+L57n3LglHq2veiTy6jYy/esQWXFuYU9u79nqHw52+RRZVTxVcZ/wISvbuuYTCGEKIuMAN4GtADacBm4La39NiLKrsyVJXCO1gTTLLRUDslKY2QMMsP06sLp/L1xuU8M95yMbhrAkxot/MTM/EoR23tofEnPynTxMZdY/7CD9EEkWIUV2piGiEac7pmgFcWvsRXG5cxdNxAi+mqoCB0aUZU2elpqIPM8+jWM56Az7/B89nh5H74rkVfACFhwSRfLztBnpKUSmiYaWzePopAzugpw/hh4+e888k8AoNN85maU4DGmCrbx53UHMs90sQb+SRm59EyMsRiOoB/aACZRuWflZyBn4WyBRj3xXTePrCMgrwCDqw1pxjxCw0s5ysTP43lDsO4L17mnQOfUpCnZb8FXwGaQNKN6KgzkjMsUov3mzCANRXQUTtpAilJKqvLxcnpOFnwU5qH3t3I/WO/1XRQqLLTk4xpzzMItJDPpyY+xU8fV0DjHRCMPt2IxjszDRFoWifUUbVRBQVTfKBqVDM2w856DEKI7kKI00KIcwbaoPLpNYQQW4UQh4QQR4UQPe40C3dtwyCEcAa+QaHFMJYMWwBMEEKob8+x+Ve3R5VdMapK4W2Zjtrcx8sjZ9G302Ceix9J01aNeahPNwvObIjHYiwWysHGuGaMmkP/zkN4Pn400a0a06O3pbgqp5EGKFjzM5mD+pO3bCke/S03MgDCQkbLh6Z2UhNWLZRDe4/SJ24QR/YfY+KrpnKclraIWrtVCSeu0uW+aqhVFdGx204tvmjgXCa2fB4nFyfubdvQLN3ybbLsbNHAOUxo+RxOLs7cZ6Mva3TUeyqko7ad1t2nZyzujeqQuawykcXK61lU/SjCIsPZnVDBC72y8hIC98Gj0K74qJJ47gB2HDEY3nMfAA8C9YF+Qojye61fBr6XUjZFETCzjWu+Atx1awxGmA2ckFKaiP1KKS8KIfYC/Sv6sQnt9qQ36DVIYeOwF1V2ZbCFwrvP4F7ED1AWME8eOYUmPKRUki40LJi05AzKIy1Z8Zmfp2X96k00iL4P3aq/qDM4jlrlaLdvXd3DAu12flImHmFlvViP8AC0yQoDZe/B8cQPeFiJ6/BpQsPLesch4cGkpZiPfIzjSvhpE/Wb3ls6BXULijiMEVV2UDC6DOujqMJtm/EaOx6MyDb7DelN76cU1tTjh0+iqRZamhYaFkJqsmkDnp15g/x8LZvWbgMg4dfNPNa/J+z9o+x33u4kG1Nl39QS7GVZ02D9yWtM7R5t9n3Hp7vxQL8uAFw8co4AozrmrwnkRor1acSSwmKObNpPdFwLTu44QuzT3WnfrzMAl46cL+crgOxKfe0jOq4FO7bvp/vAHsQZ6KjPHT1LkBEddaAmkKxydNT1Yu6lVqNaLDGio5717VxmGLGiliSn42Q0mnXWBFGSah6TR9togl54ksv9pyCLzHfq9Bj4EN36KR2Is0fPEhRmTHseSGa5fN5riG3Zzk9Lac/nfTcf3ipbHNdnpKEKMqLxDghGGtGxY6Bj95pVRsfu9dJcchdMt98CdIlddyW1BM5JKS8ACCG+RdGjMV4ckcCtBTFfIPFOL3pXjhgMes+Po5DpWcI8YAoVxC+l/FhK2VxK2Tzlu8Ms6TGNJT2mcWrDfpo83h7AJqrs9a99eVt56NiuNWvWb0ZKyZHjf1mk8P5hxU8MiBvKgLihbFu3nR59ugPQMKY+uTm5ZKSaNgxqtRrfAIWzX+2kpn1cW86fVnaonF2xkfVx01gfN43r6/cT2VvJY2BMbYpvaikol8eC1GyKc7UExig7pSJ7t+dagqKltGrFzzwV9yxPxT3L7+u3l/b+G8bUJ/dmHhnlXgLl42rXpQ0XTpnvnCk5fQp1NYX6GScn3Dp2omiX6WKrulqZgJ9Lqzborl8zSV/52Soe7/w0j3d+ms3r/qBnnwcBaNysIbk5uaSnmjem2zbsoOX9MQC0bt+C82dMY2sQ7s+VzFyuZ+dRrNOTcPIaHeqGmfm5lJHDzYJimlQznxba9mUCs3pMYlaPSRzesI/Wj3UAoGbTOmhz8rlRjlrc1cOtdK1ApVbRKDaG5PPKYcCtX64v9XVow17aPNaxyr6SDL7Wf7GWCT3GMaHHOPZu2EPHx5XOQ10DHXVWOTrqhK/W8WzLIQxv9xzTer9E0sVEk0YBQHvsDC6R4ThHhIKzEz4PPUDOZtMRhmv9moTNHs3VYbPQlVvTuYW1X/zG2AfHMPbBMexO2EWnxzsBUM9KbOu+WsfgFoN49v5nmPL4ZBIvJjLtSdOFeN2506V07Dg54dyuE0X7jZh28/O4MeRRbo7oy80RfSk5c9K+jQLKOQZb/2xANYyULoFrmKtczgSeEkJcA9YC5tvIqoi7bsQghPAHPgP6SyktCthKKU8JIU4CD6PIgdqMO6LKNoK9Kbx3bt7F/Z1b8/OubynQFvDa+DLK4683LmdA3FCcXZxZvPJtnJycUKlV7N2+n5+++pXxmC6EJm4+TFjnaB7+8x102iL2jC/LY/eN81gfp+yQ2f/SZ7RaNAy1mwtJW4+QtMVcQnvn5t207dya1X9+Q4G2kNnjy3aWfLVxGU/FPYuzizPvffMmTk5OqNUq9m4/wM9f/8c8k3oduYsX4Tv/LYRKRUHCWnSXL+ExaCglZ05RtOtP3B59DJemzUBXgj4nl5w3rFM//7FpJw90bsu6PT9SoC3g5bFlJ9N/3Pwlj3dWFMjemb2YBYtnMmX2eLIysnl57GweGFcmgemkUvFSt2hGrNyJXi95tMk91A724cPfT1I/zI+OdcMBw6Jz/YiKVf2AY1sP0ii2KXN/f58ibRErJn1QmjZj7ZvM6jEJFw9XRi2bgpOLMyq1ilN/Huf3rzdY8RXDvN8XK1tfJ31o5svVw5VRy17C2cUZoVZx6s9jFn0dMNBRf2igo15sREf99tpFTLCVjlqnJ/m1j6i+fI6yXXXVBorOXSFo7FMUHDtL7pY9hE5+BpWHGxHvKy/u4sQ0rg2fZdXl/i37aR7bnI+3f6JsV51YtoPv3XXvMfbBMVZ/awK9jvxl7+L1ikIvXrRlHfqrl3DrOwTdudMU768aHfttoQonn41nNgz42KAlU2pi4Wfl5+36ASuklG8LIdoAXwohGso7EIb4x2i3bYUQYirKnFn5zfIrgaeNKMFAzDEAACAASURBVLqbAIeAoZVtV515zwC7ZPLupcSoYTdfAAu5VrmRjfjNsgTxbaHjUXtSYnSym6+7lxLDvjtu7EmJMbnQnpQYuXbz5f/jtjumwdZuXWbzTXSPfbbC6xle9DOllN0Mn6cCSCnnG9mcALpLKa8aPl8AWkspb5s//64bMRgybK2b+LqR3RHu0qkwBxxw4P8x7MuVtA+oI4SIAq6jLC6XX1+9AnQGVggh7gPcgKrtlimHu65hcMABBxz4n4YdzydIKUuEEKNQznGpgeVSyhNCiFkoh3vXABOAT4QQ41GmmQbLO5wKcjQMDjjggAP2hJ25kqSUa1EWlY2/m2H0/0nA/BTfHcDRMDjggAMO2BMO2u3/DdhLX9meC8a7jn1uN187G0yxmy+A37/oYzdfA5433x1zu9g/r4XdfIWOsEypcDtIntfVbr5EjUi7+Sr8PqFyoyrghT/tp5P93STz7cC3i+4L7LfV9I/KTSqHo2FwwAEHHHDABHcxB5KtcDQMDjjggAP2hGPE8L8Hp4YtcOv/AqhUFP+xjsK131q2a94ez5GvkvvaC+gumesi3MJtayiUgz31HQJio6k9ZwhCrSLp681cef9nk3Tf1vdRe/ZgvOrfw8lhi0j7j3VenJ0nL/PG6j/Q6yW92tRnaFxzk/SkzBxe+WojOdpC9FIy5pG2tG8QadUf2E8TYOeFVN7YfFzRUGhcg6Gt65jZJJxKZOlOZaqhbogvCx6JsXqtN96cQdduHcnXFjBi2CSOHD5hku7l5cn6jWVTUNXCNXz33S9QssfETnVPfVw6PAFCRcmJnZTsN5/SUddphnOrhwGJPv0aReuXW4xp5+lrvPHrHiWPLeoytGNjk/Q3f93DvgvJABQUl5CZW8COmQMs+nJq0gL3gYpOQdHW3yhcs9KinXPLB/Ac/xo504ehu2C97g+c+QzRsc0o0hayZOL7XKrgPk5YNpWQGhqmdB1rnsfLGby5/Qx6KYmvH87QZpFmNhvOprBk7wWEENQN9GJ+N3MuKGOMmTWS1p1aUagtZP74Nzhz3FxD5N0f3ibQSENkQj87Tck6hHpMIYTIlVJ6CSEigYtY0U4QQqwAOgA3AXdgNzBVSnnd2I+R38FAcynlKCFEPWAp4Ae4AtullMYnBysIUIXb06PJe2sKMjMNrxkfUHz4T/SJV0zt3Nxx7dKLkvN/VejujjQUysFu+g4qFXUWPMORJ2ZTmJhJs4T5pCfsJ/9M2aG1wuvpnBr7AdVH9Kwwfzq9nvk/bGPJyHhC/bwY8NZ3dGhYk1pGHEufbNhH16Z1eKJ9I84nZTJq6RrWNRhs1ae9NAF0esn8TcdY8kRrQr3dGfDFdjrU1lArqIwK/XJmLst3n2XFgPvxcXMhM8+6lnXXbh2pVTuS6MadaNEimoWLZtOp42MmNrm5ebRr83Dp5993/MKaX9Yz+CEj5lohcOnYj8Kf3kXmZuHWdyq6C0eRmWU03sIvBOfm3Sj44U0ozAd3y/TtOr2e+b/sZskz3Qj19WDA4l/pcF8NaoWWzfVPeqRV6f8rd57kVKIVHiWhwn3IWPLmTVJ0CuYuofjAn+ivW9Ap6P4YJWcr1imIjo1BExXOix1eoHbTugydM4wZ8ZZfrC26t6aggvu44PfTfPRoU0K9XBnw/T46RAVRK6D08edydj7LD1xixePN8XFzJjO/4oN7rTu1JCIqgv7tBlI/5j5enD+W4Y9YZteZPWoep49ab/xuC/+CqaS/84BYZdoJk6SUTYB6KCeYt9qos/AesNCg13Af8L6tAalr1kOfmohMSwJdCcV7t+Hc1HyXl1uvwRSu+w6KK66A9tRQsJe+g09MbbQXkym4nIosLiH1550EdTft5RdcTSPv5BXQV7zV+fjlFKoH+xER5Iuzk5puMXXZdsy0VyiAvAKlnHILCgn28azQp700AY4nZVHdz5MIP4OGwn3hbDuXbGKz+ugVnmwaiY+bUq0CPF2txtXjoS6s/OYnAPbtO4yvrw+hVujFAWrViiQ4OJA/d+4z+V4VGom8kYq8mQ56HSVn9qGuadrLd2rQjuKjvyuNAoDWIvMLx6+mUz3Qm4hAb6X8m9Rk28krFm0B1h25QPfoKItpik5BIvpUpe4X7dqCc3MLOgVPDKXg128rrfvN4lqy3XAfzx06g4ePJ34W7qOrhxs9nu3Jz+//YJYGcDzlJtV93YnwdVfuY51Qtl0wJVb86cR1nmgUgY+bMwABHhW/Jtp1u5+EVcqmh5MH/8LrDjREbgt2pt3+b+DvbBhs0k6QChYCySjUspUhDMo4G6SUx2wNSPgHITON9AAy0xD+pi9yVY3aqAJCKDmyp/zPzWBPDYXKYKu+g6smgEIj/v7CxExcrfD3V4bU7Dw0fmU9t1A/L1JvmNIPDH+wFb/tP03XV5YzasmvvNS7Q4U+7aUJkJpbTkPB243UHNNe6eXMXC5n5THo6x08/eV2dl6wzhAQHq7h2rWyXv31xGTCwzRW7Xv3eYTVP/5m9r3w8kfmlJG/ydxshJfpC1P4h6DyC8W1zyRcn5iM6p7yLMqGPN7MR+Nb1tCG+nqQejPPom1iVi6JWbm0rGV5t4/KPwh9hlHdz0hD5W9aV9WRtREBIZQcqohyW4G/xlQnIjM5A/9Q85dvnwn9+O2TX6zfx7wCQr3dSj+HermSVm5kdzk7nyvZ+QxetZ+BP+xj52VzokRjBGmCSDWqY2lJaQRZEQqa+s4kPt2wlIHjnqrQZ5XgaBgqRVW0Ew4C99pgtxDYIoRYJ4QYL4Sowh66SvQAhMC93wi035rP8Vv0Zk8NhUpgs76DxSze3iFIyzoFphdYf+AMPVvdy4bZQ1k8/BFe/nID+gpGIvbSBLB0rrO8b51eciUrj2V927LgkWa8tv4INwuKrcRl2728hcd7P8yq73+1ml5RsEKlQviFUPjj2xSt/xSXzk+DiznNt8V7bpFTDRKOXKBLw0jUKiuPdGX6G0Lg/vRICr6yjcrfFp2Ie+pHookMY39C5Z2siqDTS67c0PJJrxjmd2vIrC1/kVNo+T5ai81SWc4ePZ/BXZ5jVK9xNGnZiG694+4oTqOL2f53l+JvXXy2VTvBgMrIq6TB52dCiASgOwov+TAhRBMppUk3w5i1cFGbexlcrxoyKw0RYKQHEBCMzDbqfbh5oKoWiddLbys+fAPwGDOL/PdmlC5A20tDoaqwRd8BoDApE1cj/n7X8ACKkq3z91eEUD8vkrPLRggp2blmU0U/7T7Jh4a1iiZRYRSW6MjO0xLg7VFqYy9NAE6Wnf0I9XYz1VDIKSDYy83ET6i3O43C/XFWq6jm50FkgBdXsvJoGKb0JZ57/mkGDXkSgIMHjhIRUdbbrhauISnZ8vmXho3uxcnJicOHzVX9ZG4WwrtshCC8/JB5pjTZ+txs9EkXQa9H3sxAZqeg8g9Bn2I63x/q60nyjbIRQsqNfIJ9PLCE9UcuMjW+tcU0UEbHqkCjuh8YjD6rXN2vHoXXDGXdSvgG4DlxLnlvTS9dgI4b+CCxfZWX54WjppoTAZpAM5rsOjH1iGpUi3d3LEXlpMI30JeXv53NnL6vlNqEeLqRYjTSS8ktJLjclF+IlxuNNT7KffRxJ9LfgyvZWhqEOpfa9Br0KA8PUITLTh0+TUh42TRgcFgwGSnmz2W64bnU5mnZ+PMW7ou2pV9qA+7ikYCt+CdI6CrVTjCgKbfeFqAtt94QAKW6M0gpE6WUy6WUjwIlgNkWBWM9hsH1FPpy3cXTqEOqIYI0oHbCuWVHig8Z0fBq88gZ8zg5k54iZ9JT6M7/ZdIogH01FKoCW/QdAHIOncO9ZhhuNUIQzk6ExN9PekLFsorW0KBGKFfSsrmecYPiEh0JB8/QoZHpHHaYvxd7DAvbF5IzKSrW4V9O5Obv0ARoEObHlaw8rmfnKxoKfyXSobbp1E9sHQ37rijVJiu/kMtZuUT4lb1YP/n4S9q1eZh2bR7mt1830q9/LwBatIjm5s0cUpIt85D17tOTVT9YHi3oUy4j/EIQPoGgUuNUtwW6C0dNbHTnD6OOqKt8cPNE+IWgv2E+LdggIogrGTe5npmjlP+RC3SoX93M7lLaDW5qi2hSw7rcqO78KVSaaqiClbrv0qYTxQdM6/7N5+O5OaYfN8f0Q3fupEmjALDxi3VM6/Ei03q8yP4Ne2hvuI+1m9ZFm5NPdrn7uOmrBEa2fIax7YbxWu9pJF1MMmkUABqEenPlRj7Xb2qV+3g2hY5RptM+sTWD2XdN8Z2lLeJydj7VfEzr2E+f/8IzXYfxTNdhbE/YSbfeSkekfsx95FnUEFHh669o26id1LTt0poLt/FcWoSuxPa/uxR/+3bVyrQThDKGH42ydnBLKu134ClguRDCHXgCmGyw7w5sllIWCyE0QCAK62Dl0OvRfv0+nhMWKNtVt69Hn3gZ1/hB6C6doeRw1TRg70RDYeIk0x0v9tJ3kDo9Z6d+SuNvpyvbVVduJf/0NSInP0nOkfNkJOzHO7oWDT+bhJOfJ4FdmxE56Qn2dTDfQuukVvFS7w6M+HANer2eR1vXp3ZYIB/+tpv6NULo2KgmL8a3Z9a3W/h66yEQgtcGdKlQr8BemgBOKhUvdWnIiB92o5eSRxtVp3aQNx9uP0V9jR8d62hoGxXMrktpPPbpVlRCML5jffzcLS9cJiRspWu3jhw5tpV8bQEvDJtcmrZj139MdiP1eqwHvR8bajkwqado23e4xo9Rtque/BOZmYRz60fQp1xGd/Eo+ssnkTXq4/bUqyD1FO9YDQXmawdOahUv9WzNiOXK9NyjzetQO9SfDzccpH5EEB3rK3Tr6w5foHuTqIp1IvR6tCvew3PqG4pOwbZ16K9dwq33EEounqbkQNV0Cg5vOUB0bDMW/vERhdpClk4s2wMyb+07TOthXp8swUmlYsoD9Xjhl0PoJTxaP4xagV58uOc89UN86BgVTNsaAey6ksFjX+9CLQTj2tbGz93Zqs/dm/fQplMrVu78kkJtAfNfLJMA/HTDUp7pOgxnFxfe+ub10ufywPaD/OfrtUxcULFuik34F4wY7KrHUG676n+saSeU267qQdl21WsG+2ooW1IjUKaYvpBSvm1Iewd4CLg1/nxTSvlVRXHdGNLFLpnsvN76dseq4m6mxGj1RcULyFWBPSkxvp5R126+QsestpsvByVG1bFs4l1KiXF9853rMXz+ku16DIMW3PH1/g7YdcRw6+yBlPISRtM75bUTpJSDK/FzHWWEYSntRcC27ogDDjjgwD+Nf8GI4f/dyWcHHHDAgb8V/4KGwaGA5oADDjhgR0idzuY/WyCE6C6EOC2EOCeEeMmKzRNCiJNCiBNCiG/uNA93nebz34Gvwp+ySybVdtTjDdPZT4/3/hOvV25UBexrZJmi4r8NKe03HXvM2a1yIxuhKbZfD7GwogXkKiLVyb7T1/WLrJ8dqCqS1NYXj6uKZp63tx3bEu47u/aOCy1/yVibXxQew9+tTPNZDZwB4lAO9u4D+hnEeW7Z1AG+BzpJKbOEECF3ovcMjhGDAw444IB9IfW2/1WOlsA5KeUFKWUR8C3K+S1jPAd8IKXMArjTRgEcDYMDDjjggH2hl7b/VY5qwFWjz9cM3xmjLlBXCLFTCLHbsKX/juBYfHbAAQccsCeqsPhszNBgwMdSyo+NTSz8rHyL4gTUATqibPHfLoRoKKXMLv9DW/H/smFoPvtpqnWKpkRbyK7xH5N57JKZTZMpfajZpx0uvp58V+dZq75iZg8kvFMTdNoido9fSpYFX/6NImm9aDhqN2cStxzh4CtfmNnYU0PBntoOfrHRRM0aCmoVqd9s5vrin0zSfVrXJ3LWEDzvu4czw98h4zfrcdnT1y1/NWcPAbWKlK83c32xaZn5tL6PqFlD8Kx/D6eHLySjgjIDuP+1p6lhqBdbX/yY9OOXzGxaTu5D3cfb4erryaf3Wq8XjeYMJLRzNDptEQfHLuGGhXrh2ziKmHeHoXZzIWXzYY69bF4vAJrOHkhYZ6WO7R1npY41jqSloY4lbT7CIQt1DOCB157mHkMeN734MWkW8th6ch/uNeRxqZU8BsQ2oe6cwQi1isSvt3D5/V9M0oWLEw0Wj8S7cU2Ks3I4/vy7FFy1fJIc7PtMerZvRujLwxBqFdnfJ5DxsSmza8CQXvg90Q1ZokOXeYPEqYsoSbzj2ZcyVKFhMDQCH1dgcg0wPu4eASRasNktpSwGLgohTqM0FPu4TfztU0lCCI0Q4lshxHnDqvlaIURdIcTxcnYzhRATjT47CSHShRDzy9k9LIQ4JIQ4YvBnWQDBCsI7NcE7SsMv909gz+RPaTl/sEW76xsPsr7HqxX6CjP4+s/9E9g7+VOazx9i0a7FgqHsnbyM/9w/Ae8oDWGxTUwNDBoKR/vPZW/78YT0uh+PuhEmJrc0FFJW76g0j/E94ljyzhyr6cbaDjMnj2H2W4stG6pU1Jz3HCcHzOVwh3EExbfDvXxc19I4N3YxaT9trzgoe/q65W/+s5zoP5dDD4wnuJcFf9fTOTv2A9J+qrzMasQ2wTdKw8r2E/h9yqe0nzfYot2ljQdZ/UjF9SK0czReNTVsavMihycuo8nrlk9JR78+lMMTP2VTmxfxqqkhpFMTM5uwTk3wrqlhbdsJ7J/0Kc0WWK5jzRYMZf+kZaxtOwHvmho0FnzdE9sEvygNX7afwJYpn9LRSh4vbjzI9xXlUSWot2Aoh/vPZ3f7FwntdT+edU1nN8L7d6I4O49drcdydelaar9inS7Nns8kKhWamS9w9dkZnH9wOD4Pd8CltimNSMHJ81zsNZaLj4zkZsIOQidbOcV+u9DpbP+rHPuAOkKIKANNUF9gTTmbn4FYACFEEMrUknXVJBvwtzYMBrqLn4BtUspaUsr6wDQg1IafdwVOA08Y/CCEcEZpXR8xaDk0BbZVJabq3ZpxcZXyokg/eB4XX0/cQ8xPdKYfPI82teKRWES3ZlxapbzEMg6ew8XXA7dyvtxC/HD2difjwDkALq3aTkT3ZiY29tRQAPtpO3g1rY32UjKFV1KQxSWk/7KDgG4tTGwKr6WR/9flSuOypy8A76a1KbiYTOEVpczSft5p7u+q4k/a0IOL7NqMMz8q9SL10HlcfTzxsFAvUg+dJ7+SeqHp1owr3yv1IuvgOZx9PHAt58s1xA8nL3eyDijKYle+305YuXsOUK17My79UFbHnH1sqGM/mNcxgJpdm/GXIY8pFeQxpZI8KvU1xVBfdaT8/CdB3U3LPrh7c5K+/x2A1F9349/OuuKaPZ9J98Z1KbqcSPHVZCgu4eZvf+DduY2JTf6eo0iDapv28CmcrFBy3zbsuMYgpSwBRgEJKFxy30spTwghZgkhbiltJQAZBuqhrShaNxVzk1eCv3vEEAsUSylL5zOklIcxXUyxhn7Au8AV4BZtpDfK9FeGwVehlLJK5+HdNf7kGfHI5yVm4q4xFxixzVeAia/8xEw8yvny0PiTn5RpYuOuMSW/s6eGgi2oirZD0fWy74uSMnG5zbjs6QvAJSyAokRjfxm4ht2+GIunxp9co3uQm5SJ5+3WizB/tEZKagVJmbiH+ZvbJFVsA0odyzeKS2vFV77R9fKTzOsYWM6j123k0U0TQIFJfc3AtZwf17AACq8rNlKnpyQnH+cAy50Vez6TTppASpLK6kVxcjpOFvQ+bsGvdzdy/7g9kkmrsO+uJKSUa6WUdQ2d67mG72ZIKdcY/pdSyhellPWllI2klJb1iquAv7thaAgcsJJWSwhx+NYfMPxWgoE4rzPwH2AlSiOBlDITZRh1WQixUggxQAhhMQ9CiOeFEPuFEPu35J81/t7c+HbPctjC+14ZD741P3Y8M2Hm22ZtB3uWlR19WfF3R2dy7OnPoq/KbSzecht0DyxpNNh6j28rj7d51sLatez6TFp+KC1a+vSMxb1RHTKXrbrNa1mBfXcl/Vfw31x8Pi+ljL71QQgx0yjtYWCrlDJfCPEj8IoQYryUUielfFYI0QjoAkxEOfgxuLxz40WdvdNWyNoDFIrgjMMX8AwP5NYymGd4ANoU2xfv6wyOo1Y5X7f6Jx4WfOUnZeJh1JP1CA9Am2xKT2xPDQVbYLu2QwYu1cpGFi5hARSl3F5c9vQFUJSYgUu4sb9AisqVa2VoMKgL9/VT7mXakQt4Gd0Dr7AA8qtQL6KGxBFpqBdZhy/gHl52z93CAigoF5s2MRP3MFObW/Wi9uA4ahp8ZR65gIdRXO5hAWiTLdQxo+t5hAVQkKL4ajSoCw0MeUy1kMe8KuTxFgqSMnAzqa+BFFqq09UCKUzKRKhVOHl7UJJVpu1Rd3AX7PVMGqMkOR0nIxVFZ00QJanm9cyjbTRBLzzJ5f5TkEX2pb+2ZerybsffPWI4AZhPdlaOfkAXIcQllBFHIIbFFVDkPA1yoHHA45U5O7NiE2vjprM2bjrX1h8gqnc7AIJialF0M7/SeUtjnF2xkfVx01gfN43r6/cT2bs9AIExtSm+qaWgnK+C1GyKc7UExii7fiJ7t+dagukgyp4aCrbAVm2H3MPncI8Kw7W6ElfQo+3IvM247OkLIOewUmauhjILjr+fzA1V24Rx4vNNrOo+nVXdp3Mx4QB1H1fqRUjTWhTl5Fe6lmCMi59tZGuXaWztMo2k9fup8YRSL/xjalOSo6WwnK/C1GxK8rT4G+pFjSfak2yoF+dWbGRD3DQ2xE3j+rr9RPYxqmM5lutYiXEd69Oe6+sVX8c+38S33afzbffpXEg4wH2GPIbeRh5vIefQeTxqanCrEYxwVhMa39asvqYn7CfsCYWlN+SR1mTtOGGSbs9n0hjaY2dwiQzHOSIUnJ3weegBcjab7kZzrV+TsNmjuTpsFrrMG7d1nQrxLxgx/K2UGIZF493AMinlJ4bvWqBQbX9wi5bb8P1MIBell38OqH5LlU0IMQRoB4wFmksptxm+7wIsMvZjCeUpMVrMG0R4x8aUaIuUrXFHFYGOHhvnsjZOEYRp+nJfIuPb4qHxIz85m/Mrt3Hi7R/NfDebN5iwjo3RaYvYM35pqa/uG+exPm4aAAGNo2i1SNmWmLT1CAemf25GiRHQuSm1Zw8u1VC4smi1VQ0FfUExRanZpRoK5SkxjLUdAgP8zLQdpJTMfedDduzeX6rt0PC+MkprY0oMv04xRM1SttGmfLuF6+/+SPVJfck9co6sDfvxalKLesunlMZVnJbN4Y6WNRXu1Fd5Sgz/zk2JmqVsV01duYVr766mxuQnyT18nswN+/GKrsW9yyeb+DvUQeHbt0SJ0W7OIKob6sW2CR+TZriXvdfPZVV3pV60ntaX2vFt8Qz1Iy8lm1Mrt3HtDfOpiMbzBxMa24QSbSGHxi0l+4jiK3bTPLZ2UeqFX5MoYt4drmxX3XKEo9NWWKTEiJk3mLBYJa6945eSZfDVdeM8NhjqmH8Tozq25QgHp39ukRKjw5xB3NOxMcXaIjZP+JhUQx77rp/Lt4Y8tp3Wl3pGeTyxcht7F642ocQI7BxN3dmDQK0iaeU2Li36iZqT+3DzyAXSEw6gcnWm/uJReDeKpDg7l+PD3qXgctmW0PKUGLf7TB59e7UZJYZnh+aETjdsV121gYyPviNo7FMUHDtL7pY91FgxF9d6kZSkKb8rTkzj2vBZgH0oMfJmDbD5peo54+u7knb7b+dKEkKEA4tQRg4FwCVgHPCTlYYhHegupexrlBaAskOpNsqaQy1AC+QBY6WUFXY9HVxJVYODK6lqcHAlVR3/Zq6kvJn9bG8YZq68KxuGf0LBLRFFga08Gpazm2n0cUW5tEzglohrDzuG54ADDjhgX9zFU0S24v/lyWcHHHDAgb8NNm5DvZvhaBgccMABB+wJx4jhfwM9H7IPD0qX3+yn+fz7F33s5sveawItjr1ZuZGNGNXcfnrUi95rZTdfHXovtJuvmwt72c2X8LZ+Yr2quDLvsN18AbyscrGbr8/H208/uvc79ltjWGsHH7LENgGeuxn/LxoGBxxwwIF/DI4RgwMOOOCAAyZwrDH870HdoDlufUcgVCqKtq+naP13Fu2cYtrjMeIVcueMRH/5rEUbgAmzx9C2UysKtIXMGj+f08fMbT9atYig0EAKDcRdo/tONLPZefIyb6z+A71e0qtNfYbGmRKqJWXm8MpXG8nRFqKXkjGPtKV9g0iLMdmT3tqeFN638OSrQ2gYG0ORtpAVEz/g6omLZjZjPp+OT4gfarWas/v+YuUrn5rZ7Dx1lTfW7FLKrGU9hnaKNkl/c80u9p1TGIoLikvIzC1gx+xBVuNa+M4sHuzeiXytlmeeGc+hw8fNbJ588lFemjIaKSVJiSkMHDzaPK5L6bz5x2n0UhLfoBpDm0eZ2Ww4k8ySPRcQAuoGeTO/eyOLMe08n8wbG46il5Je0ZEMbVvPNI8bj7LvknJmuKBER2ZeITsmPmLRl0e7ZoROHw4qFTdWrSfzE1M6av/BvfDt3R10Okoyb5A8fWGFdNRDZj5HTGwzCrWFfDDxXS4et07oOWXZdEJqhDKh6xizNNU9DXDp8ASoVJQc30HJ/gQzG3WdZji3fhgAfdo1itab1wdjDHttGC1iW1CoLeSdCe9w/vh5q7YzPp2BpoaGF+JeqNCnzXCMGKoOIYQE3pFSTjB8ngh43dquahCueNFgfhN4UUq5w6B9uhcYL6X8w2C7AfhESvkDtkCocO8/iryFLyGz0vGc/j4lR3ahT7piaufqjkvneEou/FWhu7adWlE9KoLH7x9Aw5j6TJn/IkMfHmHRdsbIOfx11DLfn06vZ/4P21gyMp5QPy8GvPUdHRrWpJYRZcInG/bRtWkdnmjfiPNJmYxauoZ1DQabOzPQW594chZFSRk0Xvc6mRv2oT1zrdTkFr11+Iie5r8vh/gecfR/vCfTZr9lxJaPoQAAIABJREFUMd2YwvvoiVPMfmsxKz9ZZNVfw45NCYkK45WOo4lqWocBc59jQfw0M7uPR75DQa4WgGEfTaDZQ62BsrlbnV7P/J92suT5HoT6ejLgvZ/p0OAeaoWWka9N6lnGqrlyx3FOJVonnHyweyfq1I7i3vrtaNUyhg8Wz6dtO9MXrFqtZuHbs2jUpCMZGVksmD+dkS8MAcoaNp1esmDbKT7qFUOolxsDvttDh6hgagV6ldpczs5j+f5LrOjTAh83ZzLzLZ9p0ekl89cfYUn/doT6uDNg+VY61AmjVrBPWR7jGpflcd95TiVbOTGsUhE6YyTXhk6jOCWde354l9wteyg6X1b3C/46T3bvMciCQvz6PkTwxKEkvbjAorumsc0IiwpjdIfh1Glal+fmjGBavOW1rpbdW1OQr7UclxC4xPajcPUiZG4Wbv2mortwFJmZVGbiF4Jzi+4UfP8mFOaDe8XrMM1jm1MtshrPPvAs9ZrWY9TcUYx/dLxF27bd21KQV1Chv6pC/gsahv+GtGch8JiBN9wEQoiHgWFAOynlvSjEet8IITRSSh3wAvCBEMJZCNEPhVjQtkYBUEfVQ5+WiExPBl0Jxft+xym6rZmda/wgihK+h+KKD6E90K0da1cpvZvjB0/i7etFYEjVGT6PX06herAfEUG+ODup6RZTl23HTHtfAsgrUOLJLSgk2MfToi9701vbi8L7Fpp0bcHu1Qod88VDZ3H39sQn2Hwh8lajoHJS4+TsZEYwd/xKGtWDfIgI9FHKLLoW205ctnrddYfP0z26ltX0Rx7pxpdfKyeY9+w9iK+fLxpNiImNEAIhBJ6eHgB4e3uTmJhiGlfKDar7eRDh64GzWkW3Ohq2XTAVqPnp+HWeaByBj5tyyCvAw/Ki7vHETKoHeBLh76n4qh/BtjNJFm0B1p24SvcGERbT3BrXpfhKIsXXFDrqnLW/49W5tYmN1piO+sgpnCugo24R15Lff9wKwNlDZ/D08cQvxJwR1c3DjUeefZQf37f8mKo0Ucgbqcib6aDXUXJmP+paploSTg3bUXxkm9IoAGhzrMYF0Lprazb/uBmA04dO4+njib+V2Ho914uV76+s0F+V8S+gxPhvNAwlKLQXlprwKShc4ukAUsqDwOfASMPnPcCfwExg3q3vbYXwC0KfWfaQyqw0VH6m5HGq6rVQ+QdTcnRPpf5CNEGkGA21UxPTCNEEW7R9ZeFLfLVxGUPHDTRLS83OQ+NX1qMM9fMi9Uauic3wB1vx2/7TdH1lOaOW/MpLvTtYvI696a0rg60U3rfgFxpAplHPPTs5A38LFNEAY76YzlsHllGQV8CBtabTXak3y5WZryepN/Is+knMyiExM4eWtcOtxlUtXMO1q2XCWNevJVEtXGNiU1JSwsjRUzl8cDNXLx+k/n11WP6Z6UslNbeQUC/Xsri8XEnLM93Ndjk7nyvZ+Qz+YS8Dv9vLzkuWyys1pwCNt3uZLx93UnMs97wTb+ST+H/snXd4U9X/x18nSSfdu1D2bkXaAmWI0jJLlQ0CIlNEpihLAScoKCi4QBQXouLCgcpesqXsvUel0L3bdCX398cNTdIkbVriF36a9/PkeXLv+eRzzz335J71Oe93Vj5R9QLMpqsC/Si5pa/7pZXQUXsO7F4hHbVPkC/pBrTn6Ulp+JjxN3j6MH5b+StFavMRfaKGF1KunoBPys1E1DDuKAjvQBTegTg9OhOnwc+hqBtmMV8AfkF+pBrca1pSGn5mGrnhM4bz08c/WcxbtVGqsf5zj+JuNAwAy4BhQgjPcufDMKXpPqQ7fxuzkSk1vpEk6VKVrmp287lBqy0EzoPHU/hDRUp7hv6sozF+afJrPNZlNOP6TiG87f3EDexRLgeVUyRvPHyB3m2bsXn+GD4Y34sXVm9Ga67HYWt660pgNYV3BWmWsvfeiNeZFTUOlaOKZh3uq/Q3li676dhlut5fH6XCcnW3hpJapVIxftwIWkf1oHbdSE6cPMvzz5muMVQGjVYiIauAlf1bszC2BfO2nSG3yJRuwny9MO9z0+m/6dq8FkpFFRgWLJS7R68YnMOakPmpKTeYPh+V17N6ofUJqhfEwU0VSKpakV0hFAivAIp+fJviDZ/g2HU4OLlU/kOjrBnnrUFoA2rWq8n+Tfur5Mcq/AtGDHdl8VmSpBwhxJfA08icRxVBYFyFHwKyKUepYfIjA5Htdzo2Z3SzEKTMNBQ++h698PZHm2Uw7eHsgqJmPWrMkOP4hacPrpPnUfDBS2UL0ANH9aXvMHkR7Myx8wTW1PfQAmr6k5ps2vtLTZLPFeSr2fTzVkIjmmEo2xro5UZSln6EkJyVZzJV9POBMyzXrQm0rB9MUamGrHw1Pu6uRna2preuDNZQeEcP70HHoV0BuHb8Ej41fbm9FOgV5EtWBfkrLSrh+NZDtOzWBtAvBgd61jAus+x8i9NrG49dYXa/B0zOTxg/kieeGAbAoUPHCKmtH1HUCgnm5i3jaaLwlnL/5MoVecrqxx9/Y9bMSXBFP08f4OZEcp6+B5qcV4R/DScjPwFuTtwf5IWDUkEtTxfqedcgIauAsEDjflKguwtJBiOE5Bw1/m7mX4gbz9xgdmy42TSA0uQ0HIL1dV8V5Edpiumai2v7cHzGD+Hv4bOQSowbqx4j4ug6pBsAl05cwteA9tw3yI+McvTWTSKb0qBFI5bt+RilSomnryevfPsarwx5ocxGystCuOuneYS7N1K+8TqJNi8TbdJV0GqRctKRMpNReAWgTdZPHT4y4hF6DJU7XBdPXMTf4F79gvxITza+12aRzWjUohGf7/28LG9vfGd+PaWqsDX/nBAiFlm0TIlMSGo2o0KIgcAPQJvK+OMqw90aMYBMrPcEYPhvPoMpTXek7jxCiBrAIqAz4C+EsMibJEnSx5IktZYkqfXoZvK8q+baeRQBtRB+QaBU4dCmE6XHDXoM6gLypg0ib/YI8maPQHPlrFGjAPDjF7/weLexPN5tLH9u3F3W+78vMpS8nHzSy/05lEolnj7yH16pUtKxa3uunDOOwgmrE0hCahaJ6dmUlGrYdOQCnVoYR7IEe7vxl24B+UpSBsUlGrzNvCRsTW9dGayh8N65ehOvxc3ktbiZHNscT7v+8jRY/YjGqHMLyEk1fhE4uTqXrTsolApaxESSdDnRyCastj8JaTkkZuTIZXbsMp1C65jk71pKFjnqIlrWNZ1i+XDFKlq36U7rNt1Zt24Tw4cNBKBtVCQ52TkkJRlH5CTeTKJ588b46e6va9eHOHfOeNAaFuhBQlYBidlqSjRaNl1MIrqB8fRiTIMA4m/I9SRTXcz1rHxqeZg+y7Ca3iRk5JGYlS/7OnODTk2CTe8xPZecwhJa1rK8vlV48gIOdWviUEumo3aP60Te9nJ01M0bEvjq0yROfNUsHfWmL9czM+5ZZsY9S/zmA3QaIDPhN45oQkFuPlkpxpoMm7/ayFNRo5nUcRwvDpzNzas3jRoFAG3SNYRXAMLDFxRKVE1ao7l83MhGc/k4yhBdNJZzDYR3ANps4w7Y71/+zpSeU5jScwr7N+2ny4AuADSNaEp+bj6Z5fK2/qv1DG8znNEPjGbGgBkkXk3k+cHPWyy/KsGGIwZd0M0yoCcQCgwVQoSasXNH7mhXPgduBe5auKokSRlCiO+RG4fPdKcXAW8KIWIlSUoXQoQji/Dc3vL6ErLm6TkhxETgOyHEdkmSrAsr0Gop/OYDXJ9ZgBAKivduQnvzOk69R6C5foHS4xUMec1g77YDdOjSjp/2fUOhuoj5z+ob8q+2fMLj3cbi4OjAe98sRqVSoVQqOLj7ML98/TtTO+tlJFRKBc8P7MSE5evQarX0aRdKo2Bflv9xgNA6AUS3aMC0vg8y79vtfL3jKAjBq8O6mh/Oa7RcmfMJoWteLKO3Vl/42yK9tXe31tSeOcQiVbYhhXeXvo+bUHg/1L4Nu/fH0/PRMWUU3hXh1I4jtIiJ4LU/36dYXcyqmcvK0l5Yv5jX4mbi6OrEpE+eQ+XogEKp4Py+U+z6ejN9W+sX0VVKBc/37cCElRvQaiX6RDWlUZAPyzcdIjTEn+iwuoB+0bmi6S2A9Ru2ERvbmfNn91KgVjN27LSytEPxm2ndpju3biUz/7Wl7Nj+EyUlJSQkJDLmiWd56sVofb4UCp6LbsrEX4/I+QqrSUNfN5YfuERogAfRDQLoUNeX/Qnp9F+9D6VC8EzHJni5mC5AqxQKnu8RzoQ1e2VfLevSyN+D5X+eITTYi+gm8ghnw+m/iQ0NqfgeNVpS5n9IyKevgUJJ9trNFF9KwHfKcApPXSB/x1/4z3wChaszNd+Ro8RKb6WSOPFVs+6ObD9MRExr3t+1gmJ1EctmvF+Wtnj9UmbGVVwPyiBpKd7xLU79poJQUHp6L1LGLRza9UKbch3NlRNor59GqhuK8/CXQZIo2b0WCs2vJwHEb4+nTUwbPt39KUXqIpbO0O9yf3/D+0zpWfXpvyrBtlNEUcAlSZKuAAghvgX6oOssG2A+8vvTNBa+GvjHabdNLihEniRJbrrvgcixfosMwlUnIK8hSEAuMF2SpF26VvIXoKUkSWqd7XtAuiRJ5muvDjlPdrfJTdqUEuNz21FiHB21w2a+4L9BieFup8SoMl5Q25ISI6hyIysxcIk1EvLWYX3CndNuZ4/uavX7xvPzrRVeTzc9FCtJ0ljd8XCgrSRJkw1sIoAXJEkaIITYCcy406mk//mI4XajoPuejCzaY5j+IfChmd+dAZqUO2e6W8YOO+yw426i1Pp+qOFaqA4f62SJy0zM/KzsAjrN+6WYkTe+E/zndj7bYYcddvyTqMoGN0Ntegu4AdQ2OA7BMHIF3JEDcXbqphKDgHVCiN53MmqwNwx22GGHHbaEbdcY4oHGQoj6QCIwBHjsdqIkSdlAWXjY/9uppLuBN7dY3sFZFfwRlli5kZUYNm6zzXzNwHYyiWDbdYEPDtlOdnRu67k283W+SYXRzlXCgsW2CwfOwDYU8QBZku3kSwFma21HDnffawdt5uv0sr4282UT2JBDT5KkUiHEZGATcrjqZ5IknRZCzAMOSZK0znZX0+M/0TDYYYcddvyvYGuuJEmS1lNOKkKSpJcs2Ebb4pr2hsEOO+yww4aQqrD4fK/C3jDYYYcddtgS///lGP6bDcPDL4+gaUw4Jepi1s5Ywc3T14zSHZwdGbp8Kj51A9FqtJzbdoTNb35r4sehdRRuE6cgFArUG/5A/d03RunOj/TGpXc/0GqQ1Gpyl76FJsEyA+gTrzxJZExritRFfDDjHa5UwG8/+5O5BNYJ4pnuppt1bKnHANXXT5DKzUn/E9oOvV8eSTPds/x+xockmnmWjy9/Bt+6AWg1Eme3HWaDmWfp8kBr/J4fj1AqyVm7gaxPvzdK9xzRH48BsUgaDZqMbFJfXELpLcvrAQ+/PIImBnXslpl8DTGoY+ct1DGAQS+PJiwmghJ1EV/OWG62/CetmoNngBcKpZLL8ef49sVPDFnKyzDilScIj2lFsbqIFTPe51oFdWz6J7MJqBPEc92nmqR5REcQ8sqToFSQvmYLycuNeZXc2oYS8vJYXJrX4+qkt8hav8/idQBeWjCL6K4PUKguZOaUlzl94pyJjYODilfefJ52D7RGq9Xy9uvL2Pj7NhO7vRdvsmj9YVnDIrIhYx4yJt1bvOEw8VdlupPCEg0Z+YXsmWO7fUX/Ap2eu0qJYQIhhEYIcUwIcUoI8ZsQwkt3vp4QQhJCzDew9RNClAghPqjKNZpEh+NXP4gl0dP4Zc4n9H59jFm73Sv/4J0uM1j28GzqtmpCk2hjKmAUCtynPEP2nFlkjB2Jc0wXlHXqGpkUbd9K5rjRZI4fS8H3a3Abb5kMNjKmFcH1azKp01OsmL2Mca+Z13UAaBvbHnWBhc3eOj2GM8Ne51inZ/Dr2xGXJsZUzLf1GFJ/3m3xGrdhqJ/w1ZyPGPb6k2btPp60hNd6zuTV7tNw9/HQ6ScYo29cN1Ysec3itQy1HV6Z9TTz36r40TbTPctF0c+yds5K+r3+hFm7XSt/560uM3j34eep16opTc08S/8XJnFrwgsk9H4St7gYHBoY02sUnb3MjcFTuNF/Avlb9uA7fazFfDWJDse3fhBLK6lje1b+wbtdZrD84dnUadWExuXzBYRFRxBQP4hXop/m6zkfM+R189f9dNJSFvScxWvdp+Pm40Hkw+1NbMJjIgmqX5NpnSbyyewPGfPaUxbvoU1sOworqGO1X3uKSyNe5WznyXj3eRDnxrWNTIoT07g+7V0yftll8Rq3Ed21I/Ua1KFzVB/mTHuN+YtN9TkAJk0bS3pqBl3a9qV7hwH8ta8836ZOp+P3QywbHsNPkx9m48nrXE4xpveY2bMV30+M4/uJcQxt24QuzWub+LkjaKvwuUdxTzUMgFqSpHBJku4DMjCm1b4CPGJwPAg4XdULNO/eiqM/yS/Ev49ewtndFfdyegAlhcVc3S/vONeUaLh5+hoe5aihVU2bo7mZiDbpFpSWUrhzO44dOhrZSAUFZd+Fs4tFNkuAqG5t2anjt79QCYd877F9+PH9703SwPZ6DLbSTwDbazuEdm/FEd2zTDh6CRcLz/KywbNMPH0Vz3I05E4tmlKScJPSG0lQWkrehp3U6Gz8Yi2MP16mVVB4/CzKQMuRbs27t+KYLl83dHXMzYo65mmGfvz+7q356yf55Xrt6EVcrS5/0wfQqlsUu3V17NLRC7ha0FBwcnUmbmxvfrGgoVAjvDFF15Io1tWxzHW78eweZWRTfCMF9bnrVnWfu/bsxM/f/w7AscMn8fB0x99M+Q58rA8fviuz50iSRGaGqSjRqRvp1PZxI8THTdbpaFGXnedumNjdxoaT14ltUddienUgaa3/3Ku41xoGQ+wHahkcq4GzQojbmpeDAfNvxwrgEehN9k39yyYnKQOPINM/x204e7jSrEskl/cat0EKPz80qfqpBG1aKko/08rs3LsvPqu+ocbY8eQtf9fidXyCfEm7qeeQT09KN8tvP3T6MNat/MUih7yt9RhspZ9gDaqq7eAZ6EOWUd4yzL5cb8PZw5XmXSK5tNdYslMV4EtpkoFWQXIaqgDLL36P/rEU7I63mO5uozoGcvlnGugeZCal42XhHid/OYdFh1dSmK/miJny9w7yNXqWGUnpeAea+ho0fSh/VKCh4BDkS7FBnkpupeNwB3UsKDiAW4lJZcdJN5MJCjYmPXT3kAkTps2exLrt3/DBp4vw8zfNe0qumiBPPS9noIcrKTkFJnYAN7PyuZmZR1SDwGrn3SzsI4Z/BjpGwS5A+Rjdb4EhQogQ5BnUm+V/a+BjnBDikBDi0NHcS4bnTWwt0UUplAoGvzeZ/V9sJPPvcvPJZvnoTU8VrvuFjJGPkf/JR7g+ZirSU6E7s/z2wfxVIb+9bfUYbKWfYA2qqu1grR4GyM/ysfemsPeLTWRY9SzN+3F7pDNOYY3J+vzHCrJlXd24na9HLdUxC74s3eMHIxbwfNRTqBwdaGqm/M0WZTlfdUPrEVQvmEObKiDptMJPVWCtFkbNWkEc/usYvTs/xtFDJ5j9qilRn3mdDvN1aNPJ63QNq1OhTkd1oC21/nOv4l5bfHYRQhwD6iEL9mwpl74RmUUwGfiuIkeGW83Xvfi51GaoTBF84/gVPGvqexoeQT7kJmea9dF34VjSriax77ONJmna1FSU/vpejcLPH0265d5t0c5tuE19Fgz46WJHxNFtSHcALp24iF9Nf0DWmfYN8iWzHIV308hmNGzRkBV7VqJUKfHw9WTet6+T0/8V/XVsoMdgK/2Es3tOVOm61mg7tB/ejbZDOwPw9/EreNXUp3sF+ZBj4VkOWPgkaVeT2PPZBtM8J6ehMlDeUwX6UZpqqlXg0i4C73FDuTlqBpTTKmg7vButdXUs0Uwds5SvPgvHkn41if0Gdeyh4T14YKhMG339+GW8a/oBsl64d5Av2RZ8gVz+J7Ye4v5ubTiw+wjdRvQkRqehcOWE/CxvwyfI14SOunFkU+q3aMi7ez5CoVLg6evJC9/O57UhL5bZlNxKx9FAi8Eh2JeSKtax4WMeZfDw/gCcOHaa4Fp6Ur2gmoEkJxnLoWZmZMl6Jn9sB2D9r1sYNMx0Y1ughwtJBkp+yTkF+Ltb0LA4eZ3Zj7Q2m3YnuJeniKzFvdYwqCVJCtcpu/2OvMbw3u1ESZKKhRCHgenIqm69zLsxxl+rt/DXarmNaRoTTruR3Tmxbj+1IxpRlKsmN9V0rrLr9EE4ubvy83MrzfosPX8OZa0QFEFBaNPScI7uTM7C+UY2ylq10CTKu6Ud27ZHk2g817nxy/Vs/FLet9Kqc2t6jnyYPet20SSiKQW5BSZ/2k1fbWDTV/KLzT8kgLmfvchLQ+Ya7Xw21GMoTsrAr09HLkx8x5piKsPO1ZvYuVrWsr4vJpKYkbHEr9tboX6CUw1nclKzyvQTLh48W6VrgqztsGbtb/Ts2okTp8+Z1XbYv3oL+3XPsllMBB1GdufYun3UiWiEOrfA7LPsMf1RnN1d+PE585Q0RafO41CnFqpagZQmp+PWM5rkWcZaKI7NGuL/8tPcemquWa0CwzrWxKCOhejqWJ6FOubs7sov5erYrtWb2FVW/hF0GhnLoXV7qWex/J1wquFSVv73xURwSVf+W77cwJYv5ToT3rkV3UfGsX/dHhpFNEGdW2CiobD1q01s/Uq+tl+IPzM/e8GoUQDIP34Rp3rBONYOoCQpA+/eD3Jtyttmy9YSVn/2Pas/k2eCY7p1ZPgTQ/jtp42Et2pBbk6eWcGrbZt30a5ja/bvjqfDQ1FcOm8aURVWy5eEjFwSM/MIcHdh08nrLBhkqut+LS2HnMJiWta2DSuCEaQ7Jmi967jXGgZA5v8QQjwN/CqEKM+0+jbwp06vocq+z+84RpOYcKb9uZQSdRE/zfyoLG3y+gV8EDcHjyAfYqb0I+VSIpP+eB2AA6s2w5Gv9Y60GvI+eAfPhW8hFAoKN61Hc/0ariPHUHrhHMX79+Hcpz+OEa1AU4o2N4/cRQst5uvw9kNExrRi+a6PdOGqZe0hb69/h+lx5vUSTGBjPYY70U8oD1trO5zbcZRmMeE89+c7FKuL+MHgWT6zfiHvxM3GM8iHLlP6kXwpkal/LABg36rN8IdBeKVGS9qCZQR/tAChVJDz82ZKLl/He9IIik5foGDnAXynP4lwdSFwiSw0U3orhaQpr5jN1wWDOlZcro5NWr+AZbo6Fq2rYxMN6tiW77aWK/+jhMVE8uqf71GsLmb1zOVlabPXL2Jh3CwcXZ2Z8MksVI4OCKWCC/tOsfvr8oNtOLb9MOExrVi660OK1EV8ZKChsGD9EubETTP5jVlotPz94sc0+uoVhFJB+nfbKLzwN8HTH6PgxCWytxzEtWUjGqycjdLTDc+ubQieNpSzXc3rIOzYsoforh3ZEb+OQnUhs57Wl+vvO77lkZghALz56rss+fA1XnxtBhnpmcwyU/4qpYLnH27NhC93yBoWkQ1oFODF8m0nCK3lQ7ROtGvDiWvE3le3Up2O6uDfMGL4n+sxVARDrQbd8W/IC8y7gd910UqG9qOA1obc5OYwt95jNrnJZxrbjivpqQvl5a6rjxnFtuVKWuVkuznXe5Ur6Sk32/EbfZ5X/YXX8sjAdhPPWZKpjvSdYIYNuZIGqhMqN7IStuRKchn88h23FLc6xlj9vgnes+OeHF7cUyMGw0ZBd2w4VWSymiZJ0hfAF/9sruywww47rMe/YcRwTzUMdthhhx3/36HV3JODgCrB3jDYYYcddtgQktbeMPy/wPQI26wNPLjPAkVANXBoQZvKjazEkbnXbOYLbKutbMt1gdcPvW4zX24hnWzmK22cKZVFdaGwEFpZHWRtN42euhO8ecu/ciMrceplU8qO6mLErCM28/XD4Dv3cQ8t21Yb/4mGwQ477LDjf4V/w4jhntz5bIcddtjx/xWSVlj9sQZCiFghxHkhxCUhxPNm0qcJIc4IIU4IIbYJIe6Y/Ok/N2JwiIjC9YkpoFBQtPUPCn/6xrxd+064z5pH9oxxaC6ft+hv9uvTeKhLB9TqQuY+PZ+zJ01tHRxUzF04kzYdItFqtby3cAWUC0vceyWFRdtOyVTB99dhTLvGJn42nbvJR3tl/00CPHmjV6TZPHnFhNNg/mhQKkj+ehuJH/xilO7Rrjn1542mRmhdzo9fSvrvlik29p77m0Xr9qPVSvSLasqYzuFG6YvX7Sf+ksxMUlhSSkZeIXvmj7ToD2xDlf1PUHgveftVYmM7U1CgZuyT0zh2zJhTyc2tBtu36fc/1KoVzJo1P8FF4/JVNo/Euf84UCgo2b+Z4q3G9BmqqC449R2DlCXvri7Z/Tsl+81LvSobh+P48GhQKCg9tI2SXcbXUkVE49hzONocOfy29MAGSg9tN+vLqV0bPJ+ZjFAqyF+3nrzVa4zSXfv1wm1AHySNFkmtJuuNJZRes0wTP+DlUYTGRFCsLuLrGR9ywwwd+IRVs/EI8EahVHA5/hw/vPipicLZ3uvpLN59Aa0k0Te0JmNa1TPxs/liMisOXkEIQRNfNxb2qJhyZfQrTxIZ04oidRHLZrzL1QroxZ/7ZC4BdQKZ3v3pCn1aC1suPuvogZYB3YAbQLwQYp0kSWcMzI4ih+0XCCEmAIuQueSqjbvaMAgh+gE/Ac0lSTqnO9cYWAo0B7KAHOBlSZJ26fYtLEYWxb6Nx8oVkmUoFLiOe4bcV6ajTU/FY9FHFB/ci/ZGucrv7ILzwwMoPV8xeeuDXTpQt35terYbyP2t7uOlRbMY2tOU+nncM6PJSMvg4Q6DEELg6e0BD9xflq7RSizcepIVj7Yj0N2FYV/uplOjIBr66ZlIr2fk8dmBi3wx7AHTHfAHAAAgAElEQVQ8nB3JyDdPcIZCQYOFYzn96DyKb2XQcuMbZGw+hPqCftd1UWIaF6cuo9bE3hXen0arZeHPe1kxLo5AzxoMe+8XOoXVpWGgnhBuZm/9XPGaPac4d9OUSsIQhlTZdSIa0e/1J/ig74smdrtW/s7l/WdQOigZ9/ULJlTZfeO68diA3syZ/5bZ6xhSeJ84fY75b33AmpWWd4DH9oihUaP6hIY9SFRUBO+/t4AHHzIun7y8fKLaxpYd79/3B7/8upFRoQZGQoHzoAkULHsBKSsd1xlLKT31F9qkv418lR7ZTdGPpg2aEYQCx15PUPj5fKScDJwnLKT07CGkVOMd9KUn91H826cV+1Io8Jo+lbSpM9GkpBLw2YcU7t5n9OJXb9pGwc+/AeDcsQOeUyeQ/qxJBxWA0Ohw/OsHMT96KvUiGvPo60+wpO8LJnafT3qnjPl1zIfTiHi4PUd+02szaLQSb/x5ng/7RBDo5sSw7+PpVN+Phj76yPXrWQV8dvgaXwxojYezAxkFxRXeakRMK4LrBzOl03gaRzThydcmMKfvTLO2UbHtKCxQV+ivqpBsu/M5CrgkSdIVACHEt0AfoOydJ0nSDgP7A8Djd3rRuz2VNBTYAwwBEEI4A38AH0uS1FCSpFbAFKCBwW++01Fz3/5Y1ygAqsbN0d5KRJssU2UX79mOY1RHEzvXx56g8Jc1SCUVV8DOsQ+x7geZbuDE4VO4e7jjF2C62anf0F6sfG8VIPdks8pRKpy6lUltrxqEeNXAQamgR/Oa7LyUZGTz04kEBkfUw8PZEQCfGk5m8+Qe0YjCq0kUJaQglZSS+steU9rtv2Xa7fJCOuVxKiGV2n4ehPh6yBTG4Q3ZedpyD3LDscvEhjes0KetqLJtTeHdq1d3vvpaHg0cPHgULy8PgoICLNo3algP/wA/9uwxJptT1G2CNvUWUnoyaEopPbILVQtTbQproAhphDYjCSkzBTSlaE7sRdW8etw+jqHNKL2RiOamXPcLtm7H+SFjqggjmngX5wpXUVt0b8NBAzpwa+nYy2+oPZWcQ21PF0I8XeS63ziQnVeM6TB+Pp3Ioy1C8HCWN3L6uDpWeK9tukXxp45e/OLRC9SwQC/u7OpMr7F9WGuBXry6qArttiHZp+4zrpy7WoBhr+IGxqzT5fEEYEoIVkXctYZBCOEGPIB8I0N0p4cB+yVJKmNVlSTplG4j251f08cPTZoBVXZ6KgpfY64UZf3GKPwCKDm0v1J/AcH+JCUmlx0n30ohMNg4cuM2XfCU557ihy2rWLJyAb7l6IJT8goJMohGCXR3JiXXOALqekYe1zPzGfn1Hoav3s3eK+bVwxyDfYwokYtvpeMUbJmKuiKk5OQT5KXvuQV61iDFgKDMEDczc7mZkUtUo5oV+rQVVXZlqCqFd82aQdy4oSfrTUy8Rc2aQRbtHx3chx9/+M3kvMLLF22WngBOm5WG8DTtLKhadsD1ufdxHjMb4WWer0d4+CBl68tKyskw60sZ1haXKW/hNHS62XQAhb8fmhR9ndGkpKH0N40yqjGgD4E/fIXHpHFkLbEslOQZ6F3uOaZbfI4TvpzDgsMfU5iv5lg5OvCU/EIC3Z3LjgPdnEgtNxq+nlVAQlYBo348xIgf4tl7veJRqU+QL+kG/4H0pDSzFPaDpw/jtwroxasLrSSs/kiS9LEkSa0NPuUJvcxy2Zq7rhDicaA1RlSd1cPdHDH0BTZKknQByBBCRCIT41UWezZYp/J2+2N9fF9ldMhC4DpmEgWfLze1M+fOzDMr38lSqpQE1wrk6METDOo2kuOHTjLj5acr/I25rGq0EgmZ+XwypANv9GrFqxuPk1NohvKgCjTNlcGafN3GpmOX6Xp//copjG1FlV0JqkrhXRV6a4BHB/Xmu+9/tTYzRoelpw6S/+oYCt6cgub8MZwft8AJZQW9dem5Q6gXT0T9/gw0l0/gNMACO4yV1OL5a38ledDj5Cz/GI/RlmckzFOLmy+vD0cs4IWo8agcHWhSDTp2jVYiIVvNyn6RLOxxH/O2nyW3yDLdhzV5kynsgzhYEYV9NSFJwuqPFbgBGErMhWBGbkAI0RWYC/SWJOmOW7q7ucYwFLg96fut7tgIQoifgcbABUmS+utOf1cZN5Lut+OAcQBLwhszsl4wUnoqSj8Dqmxff7QZ+p6FcHFFWac+7q/J2VJ4+eA+ZwG5C+aULUAPHT2QgY/3AeDUsTME1dKLfAQGB5BSji44KyObggI1W9fvBGDTb9vo/1hv2KvXqg10dyYpVz/PmZxbiL+bs5GfQHcXWtT0xkGpoJaXK/V83EjIzOe+YOPhe/FNY0pkx2BfipMs0zRXhEDPGiRl5enzlZ2Pv0cNs7Ybj11hdr8HzKb9E1TZlcEaCu/xT41kzBi52h06fJyQEP1op1atYG7dSsYcWrRojkql4ujRkyZp2qx0HLz0PXGFlx9STrkprILcsq8l+zbh1HuU2etI2cYjBOHhY+pLrX8+pfHbcOxh/mWuTUlFGaCv+8oAPzRplkdQ6i078JppTKz44PDutNfRgSccv1zuOVZOB35q6yFadGvN+T36cguo4Uyyweg4Oa8I/3LTpAFuztwf5CHXfQ8X6nm7kpClJixQzxHWY0QcXXX04pdOXMLX4D/gG+RHRjkK+yaRTWnQohHL9nyMUqXE09eTV761LDtbFdg4XDUeaCyEqI+8tjoEeMzQQAgRAXwExEqSVLUelAXclRGDEMIX6Ax8IoS4BsxEXkU/DZSF2kiS1A8YBVR5LsRwiDayXjAApRfPoQgOQREQBCoVjh07UxK/V/+bgnyyRvYh+6khZD81hNILZ4waBYA1n//IgC7DGdBlONs27KL3oJ4A3N/qPvJy80hLMR3m7ty8h6gH5Ntq92AbLl8wjt4IC/YiITOfxKwCSjRaNp29SadGxtMYMY2DiE+Q/8iZBUVcz8wjxMvV5Fq5xy7h0iAYpzoBCAcV/n0fIGOzZbWxihBW25+EtBwSM3IoKdWw6dhlOoXWMbG7lpJFjrqIlnXNz8nvX72Fd+Jm807cbE5vPkRk/wcBrKLK/m3el9XKe3THdqzbuA1Jkjh+6qxZCu8VH60iqm0sUW1j+W3dJh4fNgCAqKgIsrNzSUoy/x8b/Ggfi6MFbcIFFP41ET6BoFShinyI0pPG6xDCQz/frWrRFm3y3+XdyL4SL6HwDUZ4B4BShfL+Byg9d8jYl7u+Y6Bs3hptinkZy+Kz51DVroUyWK77rl07U7jbeLpUGaKfunZ+oB2lfxtvDN29ejOL4p5jUdxznNgcT1T/hwCoF9GYQjN04I6uTmXrDgqlgtCYCJIvG3d2wwLdScguIDFHLdf9i8lE1zeeWotp4E/8DbnRyVQXcz2rgFoexhMFm75cz8y4Z5kZ9yzxmw/QaYCsjdE4ogkFufkm9OKbv9rIU1GjmdRxHC8OnM3Nqzd5ZYjp4nl1oNUIqz+VQZKkUmAysAlZrOV7SZJOCyHmCSFuR0csBtyAH3SzKOUFzqqMuzViGAh8KUlSmRq5EOJP4AIwWwjR22CdwfTtV11oNRSsfAf3l9+Sw1W3rUfz9zVcho6h9NI5SuL3Ve7DALu27uWhLh3Y8NdaCtWFvDBVr8ewdttqBnQZDsCS+R/wxgev8Nz8Z8lMz+KFqfN5aFKTMluVQsHzXe9jwg8H0EoSfVrUppGfO8t3nyM0yIvoxkF0qO/P/mup9P90BwoheDY6FC8XM4twOtrtsDUvgFJByprtqM/foM6sweQdu0zG5kO4hTek2WezUHnVwKdba+rMHMzRTqbTGSqlguf7dmDCyg0yhXFUUxoF+bB80yFCQ/yJDpPDpW8vOltDYXxHVNkGsDWF94aN24mN7czZM3soKFDz5LjpZWkH/9poFI00cOAj9OljISRXq6XwxxW4Tpwnh6se2II2KQHHuGFoEi6iOXUQh069Ud0XBVotUkEuhV9ZiJbSain+7VOcR80FoaD0yA6klBs4dBmMNvEymnOHULWPQ9WsNZJWA+o8itYuM+9LoyXr7ffxe+dNUCjJ/30DpVev4f7kKErOXqBwzz7cBvbFqU0rpNJSpNxcMudbZsY9s+MoYTERvPTnuxSri/l6pp4df9b6N1kU9xxOrs48+cksVI4qFEoFF/adZm85OnCVQsFzDzVl4q9H0UrQJzSYhr5uLP/rMqEBHkTX96dDHR/2J6TT/+v9KIXgmQ6N8HKxzCh8ZPthImJa8/6uFRSri1hmQC++eP1SZsZVXBfuFFob6zFIkrQeWF/u3EsG37va9ILcJdptIcRO4A1JkjYanHsaOUT1XWAJ0AxZqS0XWCRJ0lYL4aoTJUmq8I2e0a+TTW7StpQYD9rMl60pMSI/rl4UjTm8/PRhm/myU2JUDVnbK16krSpsSYnxxnTbUZWPfMt2dPg/XP/1jt/qJ+v3svp90+Lqb/fkNum7MmKQJCnazLn3DA7jLPzuC+w023bYYcc9DDtXkh122GGHHUaw9VTS3YC9YbDDDjvssCFsvPP5ruA/0TA8dcR0R2Z1cGhxaOVGViJwwnc287XIx1Ts/E7QaeBSm/k636TqceuWYMt1gbwbf9rMV3TLsTbzpdaaRmhVF92calduVAXMrXfLZr66vZFauZGV+LbmvfUi1vwL2FX/Ew2DHXbYYcf/CvYRgx122GGHHUawrzHYYYcddthhhH9BUNJ/s2GwFVf73stJLNp8QtZQCK/HmA5NjdIXbzlB/DV5LrWwVENGfhF7ZvSyeK1Fi1+ie49oCtSFTHhqJsePGdN+u7nVYOMW/dpErZpBfPfdr/DGtvKueODV4dTpHE6puogd0z4m7dQ1E5uoWYNoMqAjTp41+LSZ5XnypUvm0TO2MwVqNU888SxHj5kS2g0e3Ifnn5uCJEncupnMiFFTSE833m3q8kBr/J4fj1AqyVm7gaxPvzdK9xzRH48BsUgaDZqMbFJfXELprYp3+FdbQ8EA/4S2wzPzJtO+c1sK1YW8/uwiLpy6aGLz/g9L8Av0pahQprZ5Zugs1Kmm9ztz/lQ6dmlPobqQl59ZwLmTF0xsPl77Pn4Bel8ThzwLeSZm9H55JE0NtDBumtHCGKbTwpA0Eme2HWZjOS0MAMeoKNwnTwalEvUff1DwjbGuiUvv3rj07Stv4lOryXnrLTTXLTPzVre8stJN12Sc27fBa/okUCjI/3U9uauM8+/22EDc+sQhaTRos7LImLcYjYVd7tWBfcRgQwghNMBJwAFZxWYV8I4kSVohRDQwQ5KkR4QQgcCnyMRSDsA1SZLM7nswB1txtWu0Egs3HmfFYx0J9HBh2Gc76NQ4mIb+HmU2M7vpNRfWxF/mXJLlhcXuPaJp2Kge4fd3pk2bcJa+M5/O0f2NbPLy8unY/pGy4z/3/Mq6XzfSF+NdoHViWuJZP4g1D04nIKIhDy4Yxc+9XzG55rUtRzj1xRaG7jKvaQDQM7YzjRvVp1loR9pGRbLsg4V06GjcuCmVSpa+PY8WLaNJT8/kjYVzmTRxNPPmL9EbKRT4vzCJm0/OpjQpjZDv3id/xwFKriSUmRSdvcyNwVOQCovwGPwIvtPHkjxjgcW83YmGwngddxPYXtuhfee2hNSvxeCOwwmLbM6Mhc8wrtcks7avTn6dcydMX/S38UDndtRpUJs+HYbQIjKM2W/MYOTD5ZmZZcyd/CpnjxsIRTkZ05I31WlhLDbQwlhmQQvjik4L40mdFsb5ncf1BgoF7lOnkjVjBprUVHxWrKBo716jF3/h1q2o18nkBU4dOuA+aRJZs2aZzbctywuFAu9ZT5MyeRaa5FQCVy1HvWs/pVf1eSs5f4nkEROQioqoMaAXXk+PI32ObXiSADT/gobhbusxGEKt01cIQ1YrigNeNmM3D9giSVJLSZJCAfNKIhZgK672UzczqO1TgxBvnYZCaAg7L1iO2thw+m9iw0Ispsc93JU13/wMQHz8MTw9PQgMsrzTtGHDevj7+7JvrykPUr3urbiwdg8AKUcv4+RRA9cA08islKOXKUipOAqmV68erP5aViD76+ARPL08TXQKhBAIIahRQ2YvcXd35+ZNYwI6pxZNKUm4SemNJCgtJW/DTmp0NhaEL4w/jqTrDRYeP4sy0DwdtT5vttFQsLW2Q8ceHdj4o0z9cPrIWdw93fANqB71eXTsg/z+g0wQcPLIadw93MxqfliDsO6tOGyFFsaVSrQwHJo1Q5OYiOaWrO1QuH07Tg8YEygaaTs4V6ztYMvycgxrRsnfiWgSdboTW3bg0sk4aq/o8DGkIrmeFZ88izLAdju6ASSE1Z97FfdSw1AGHUPgOGCyMCXgCUamor1te6Iqvm3F1Z6SW05DwcOFlFzzo4ub2QXczMonqp7ll5asB6BvWBJvJlEz2LIewMBBvfhp7R9m02oEeZNnwJWfdyuDGkGmjZ81qFUziBt/G+gU3LhFrXI6BaWlpUyaMptjR7bx9/UjhDZvzGefG8tGqgJ8KTVgni1NTkMVYPnF79E/loLdFZP/2UpDoTJUVdvBP8iPlJv6qYmUW6n4B5m/1zlLZvHF5o8Z9Yx5VtSAID+SjXyl4B9s3tcrS+ewZsvnjH3WPI+TR6AP2Qb1IjspA49qaGEo/P3RphpoTqSmmtV2cOnbF9+vv8Zt/Hhy33vPJP02bFleSn8/NMn6vGmSU1H6W65nNfr0pHDfQYvp1YFWsv5zr+KebBgAdFJ2CqD823QZ8KkQYocQYq4QwqwyjKEy0pW8a4bnzV3M6NAarnbJzBKTRa2C03/TtXktlArb6QEMGPgIP35v4SVnQ00Ga/KlUqkYP24EraN6ULtuJCdOnuX556ZUmidLvUi3RzrjFNaYrM9/NJtelbwZokoaCpX4tIW2w6tTFjCi61gm9ptKy6j7iR3YzZwzMxkyPTV30qsM7jySJ/pOJKJtSx4eFGtqVIVncFsLY5+1Whhm/Kh/+YX0YcPI++gjagwfbvGnti0v6/IG4NqzK47Nm5Cz+nuz6dWFFmH1517FPbPGYAEmJSdJ0iYhRAMgFugJHBVC3CdJUmo5u4+BjwE+efEjySZc7Rf1C2yB7i7GGgo5avzdzBOgbTxzg9mx4Sbnnxw3nJGjZc3uI4dPEBISXJZWq2YQt5LM6wHc16IZKpXKaKE1bGRXmg+VqYZTj1/BzYAr3y3Yh4Jk6zdOTRg/kieeGAbAoUPHCKltoFMQEszNcjoF4S3DALhyRZ7H/fHH35g103iOuDQ5DZXB1Jgq0I/SVFOSN5d2EXiPG8rNUTOgxFSM5Z/QUKgM1mg79B/Zh97DHgbg7LHzBNTU92cCgv1JSza917Qk2WdBvpotv2wjNLw5P3//B4+O6k+/YfI6zunjZwk08hVAapLpaCXVwNfGn7ZwX3hzjqw7Tfvh3YjSrafcOH4FT4N64VmBFkb/CrQwtKmpKAxGCAp//wq1HQq3b8f9WWNGU1uV1+0pqNvQpKShDNTnTRnojybN1JdTVCQeox8j5alpZuvZneBeniKyFvfsiEH38tcAJt0VSZIyJEn6RpKk4chCFg9V5Ouf4GoPq+lNQkYeiVn5Mo/8mRt0ahJMeVxLzyWnsISWtUyH7Cs/Xk3H9o/Qsf0j/PHbFoY+1g+ANm3CycnJJTnJ/O7QgYN6m0yJnF61lR9j5/Jj7FyubjpMkwGylnVAREOKcwsqXUswxIcrVtG6TXdat+nOunWbGD5sIABtoyLJyc4x0SlIvJlE8+aN8dPpHXTt+hDnzl0ysik6dR6HOrVQ1QoElQq3ntHk7zAekTk2a4j/y0+TNPllNOV0sW/jn9BQqAzWaDv8tOpXRnUfx6ju49i1aU9ZbzYssjl5Ofmkl+t8KJUKPL3lQAWlSkmHru24cl7W6fj+i58Y2m00Q7uNZueG3Tyi6/23iAwzq/mhVCrx8vEEQKVS8mC3Dlw6L0fa7V+9hXfjZvOuTgujlYEWRqEFLYzulWhhlJw/jzIkBEWQrO3g3LkzRfuMCY6VtfTaDo7t2qFJNGZAtWV5GaL4zDkc6tRCWVOnO9EtBvUu47w5NGmEz+xnSZv+ItpM2+00vw1tFT73Ku7JEYMQwh9YAXwgSZJkONQUQnQGDkiSVCCEcAcaAgnmPZnCVlztKoWC53uEM2HNXlmroGVdGvl7sPzPM4QGexHdRO7Jbjj9N7GhIZVqFWzatIPuPaI5fnIHBepCJj6lj+DYs/93o2ikfv3jGNh/jEVfCduPUadzS4bueZtSdTE7p+tlZAdufJ0fY+cC0G7OEBr17YDKxZHHD77HuTU7ObTUOJRz/YZtxMZ25vzZvRSo1YwdO60s7VD8Zlq36c6tW8nMf20pO7b/RElJCQkJiYx5olw5arSkLVhG8EcLEEoFOT9vpuTydbwnjaDo9AUKdh7Ad/qTCFcXApfIjXDprRSSprxi8T5tpaFga22H/dv+on3ntny/9ysK1YUsmLaoLO2LzR8zqvs4HBwdWfLNIlQqJUqlkvjdh1n3tema0Z5t++nYpT2/7v+OQnUhrzyrj9Jas+VzhnYbjYOjA8vWLEGlUqJQKvlr9yF+/uo3ujgYa8af23GUpjHhzDKjhTF1/ULeNdDCSLmUyNMGWhjx3+3QO9JoyH33XbwXLwaFgsING9Bcu0aN0aMpPX+eon37cO3XD8dWrZA0GqTcXLIXLvyflBcaLZmL3sf/vTcRSgV56zZQeuU6Hk+NovjseQp37cdr6jiEiwu+b8iSBpqkFNKmm0ZnVRcaG48YhBCxyHIESuATSZLeKJfuBHwJtALSgcGSJF27o2veDT0GczATrroaWGImXHUmMFpnowA+lyTp7Yp8D6rbxyY3+eX8/wZX0uTkHZUbWQlbciWFXjpjM1/3LldSsc182ZoraZoNuZL6X7TdZIUtuZJqx2+7Y2frA4dY/b6JS/62wusJIZTIAmbdkINu4oGhkiSdMbCZCNwvSdJ4IcQQoJ8kSYOrlXkd7pkRgyRJygrSdgI7dd8XI4v12GGHHXbcc7DxGkMUcEkXjIMQ4lugD2DYS+oDvKL7/iPwgRBCSHfQ679n1xjssMMOO/4/Qius/1iBWoChKPgN3TmzNjqN6GzgjiTy7A2DHXbYYYcNUZVwVcOwet2n/LZ2swG41bCpEu6ZqaR/Eqtm17OJn6dfulS5kZVIWtDdZr42L8yxmS+AnKX9bOZrwWLLO4SrCltqK9tyXWDn8U9s5kubcbNyIytRvPxNm/kCGLDW2Wa+Nj3uajNfo7/V2MyXeZ6DqqEquTEMq7eAG8j0P7cRApSvJLdtbgghVIAncEd/PPuIwQ477LDDhtAKYfXHCsQDjYUQ9YUQjsAQYF05m3XA7ZC7gcD2O1lfgP/IiMEOO+yw438FW8Z5SpJUKoSYDGxCDlf9TJKk00KIecAhSZLWIZOKrhZCXEIeKQy50+v+5xqGvddSWbzzLFot9L0vhDFRDUxsNp+/xYoDlxAImvi7szDO8hTGkJdH0yImkmJ1EZ/PWEbCadNNN1NXzcUzwAulUsnF+LN8/eKnJjaKuqE4dnoUhILS03spPbTJxEbZuBUObR8BJLRpNyje+JnFfLV4bQSBXcLRqIs5MnUF2Sevmdh43l+fyHefQunsSPK2Y5x8wXRD095raSzedR6tJNE3rBZjWtc3sdl8IYkVf11BCGji587C2BYW8wXw8MsjaKKjfl47YwW3zFA/D1k+FZ+6gWg1Ws5vO8JmM9TPyuaROPcfBwoFJfs3U7zVmEJDFdUFp75jkLLkDWElu3+nZP9mi/mqLvWzIWxN4b3n8EneXLkGrVaif7cHeWKQMZHwzZQ0Xnr3czJz8vB0q8GC6WMJ8jPPf6RsFolz/ydBKCg5sIXibWbKq/dopOzb5fUHJQcsl9fEVyfQpnMbitRFvDXtbS6dsjzV+upnrxBcJ4hxXceb5qtJBE69x8j5it9Kyc6fjfPVKganuBFoc+TZkZJ9GyiN32rxWmA7av3qwNYb1yRJWg+sL3fuJYPvhcAgW17zrjQMBnsWVMBVYLgkSVkG6c8CC4FASZKydeeigV+BK4ArkAwskiTpd2uvq9FKvLH9DB/2b0OguzPDvtlPp4YBNPR1K7O5npnPZ/FX+GJwOzycHcgoME+iB3BfdAQB9YOZGz2FBhGNGfb6kyzsO8fE7qNJSyjMk+kzxn84ndYPtwMM6JGFwDF6KEU/v4uUl4nzkNlorpxAytDHjQuvABxa96Dwh8VQVAAultlAA7uE49YgiK3tp+Ed2YiWb45hV9xLJnbhb47h2IxPyTx8kfbfzCKgc0tStuvplTVaiTd2nuPDfpEEujkz7Lu/6FTf37i8svL57NA1vhjURldeFcfhN4kOx7d+EEujpxES0Yjer4/ho76meduz8g+u6qifR389l8bRLYHdBmWmwHnQBAqWvYCUlY7rjKWUnvoLbdLfRn5Kj+ym6EfTF3R52Ir62ZYU3hqNlgUrvubj+dMJ9PVm6LT5RLcNp2EdPQ3I2599T6/OHejT5QH+On6W91atZcH0J02dCQXOA8dT8OGLcnlNWyKXV3K58jq6m6K1H5n+vhzaxLShVv2ajH5wDM0imvH0gsk83fsZs7YPxD6AOt88wSRCgVPfJ1F/8ipSdjoukxdReiYeKeWGkVnJib0U/2rdWo6tqPWri3+B5PNdW2O4TbF9H/LQp/w/cCjy3Fr5VdDdkiRFSJLUFHgaOV63i7UXPZWURW0vV0K8XGWq7KZB7LxszK3z88kbPNqyDh7OssaBj6uTRX/h3dtw4Cd5o9SVoxdxda+Bp78pvfXtRkGpUqJyUJlweikC6yFlpyDlpIFWQ+mFeJQN7jeyUYV1pOTEn3KjAKDOtZivoB6tSPhefolmHrmEg4crTuVot50CvFC5uZB5WO4VJ3y/m+DY1kY2p5Kz5fLy1JVX4yB2XjGm6fj5VKq3zS0AACAASURBVCKP3h9iUF6OFvMF0Lx7K47pqJ9vHL2Es7srbmaon68aUD/fPH0Nz3IsoIq6TdCm3kJKTwZNKaVHdqFq0a7Ca1cEW1E/25LC+9TFK9QJDiAkyB8HBxWxD0Wx46+jRjZXEm7RtmVzAKLub8aOv46Z9aWo2xhtmkF5Hd2FqkXbKt/fbXTo3p4ta2WBqHNHz1HDww0fM+Xl7OrMgCf78817a0zSABS1G6FNv4WUocvX8T2oQqOqnS+wHbV+dfFvING7Fxaf92MQlyuEaAi4AS8gNxBmIUnSMWRthsnWXiglr4hAQ6psN2dS84xHBNez8knILGDUtwcYsWY/e6+Z5ysC8A70IcOAxjgzKR0vCzTGz3w5l7cPf0JhfiGH1xtzBAk3b6RcPV+TlJeFcDOuyMI7AIVXIE6DZuL06CwUdS3vwnYJ9kZ9U/+yKbyVgUuwt6nNrYptUvKKCHTTN4yBbk6k5pcvrwISsgoY9cNBRnx3kL3XLJOpAbgHepNtkLecpAw8KqAEd/ZwpVmXSC7vNVazU3j5os0yoH7OSkN4moZuq1p2wPW593EeMxvhZZl+2ZbUzxWhKhTeyelZBBpMCwX6epNSTrGsSf3abN13GIBt+4+Qry4kK8dUuk3h6Ys2U38dbVa6+fK6vwOus97DedTzFZaXb5AvqTf15Z92KxXfIFN/o2aOYO3KtRbp64Wnb9lUH4CUnY7wNP0Pqe5rj8szS3B+fKbZfBvCVtT61YVGWP+5V3FXGwbddu8uGK+yDwXWIM8bNBVCWBYxgCNAszvLhPGhRiuRkJXPykFRLIxrybwtp8gttMC+aJYu2LzpOyNeZ0bUOFSOKpp1sIImopwjoVAgvAIoWvs2xRs/xbHLcHA0z+ZqVb6spHOuDHJ5FbCyf2sWxrZg3rYz5BZZZqs0T3tu3lahVPDoe5PZ/8VGMqtB/Vx66iD5r46h4M0paM4fw/lxyxxHNqV+rjCLVaDwNmtrfDx9zCAOn7rAo1Nf4dCp8wT4eqNUmvtbV065XXrqIPnznqBg0dNoLhzD+THzU0MW81zOX4PQBtSsW5O9G/eZ2laEcrddejaegjeeQv3ONEovHsfp0YrXAmxFrV9d2En0qg8XIcQxoB5wGDDkzr3N9aEVQvyEvKiyzIIfi22ubqPIOID3H+vMmAfvI8DNiWRDquy8QvxrGE8VBbg5c3+wJw5KBbU8XannXYOErALCgmT2yujhPXhoaFcArh6/hI8BjbF3kC/ZyZbDh0uLSji+9RDh3dpAlp5tUsrLRLjre83CzQsp37hnqM3LQnvrqqyhm5OOlJWMwjsAbbJMdV1/dDfqDZNZYzOPXcGlpr7X5RzsQ2GSMYOs+mYGLsHGNupyNgFuTiQbjKiS84rMlJcT9wd56crLRV9egZ5lNm2Hd6O1jhI88fgVPA3y5lEB9XOfhWNJv5rE/s82mqRps9Jx8DKgfvbyQ8opV/YF+um2kn2bcOo9yijZVtTPVYE1FN63EejnTbLBNFNyeib+PsbTbgG+3iydI8/EFqgL2brvCO41TPcIaLPTcPDWjwAUXr4Vl9f+zTj1GmWU3GtkL+KGysSE549fwL+mvvz9gv1JL1f3Q1s1p/H9jfly3yqUKgVevl4s/n4RMx/VL9hL2ekIL/39C09z+dKPgEoPbsUpzlTboceIOGxCrW8D3Bvsc3eGu7rGANQFHNGtMQgh7gcaA1uEENeQGwmL00lABHDWXIIkSR9LktRakqTWYx6Ue+hhQZ4kZBaQmF0gU2WfTyK6gfGAJKZRAPF/y5UoU13M9cwCannqe+Y7V29iXtxM5sXN5NjmeNr17wRAg4jGqHMLyC5HY+zk6ly27qBQKmgRE0nSZWMKYm3ydYRXAMLDFxRKVE3aoLliLEynuXwMZUgT+cC5BsIrAG22/gVz9fMt7Og6hx1d53Br4yHqPCrTK3tHNqI0V01ROdrtopQsSvPVeEfKETF1Hn2QpE2HjWzCAj1IyCogMVstl9fFJKIbGCt1xTQIIP6GQXll5VPLw3gk89fqLSyLm8OyuDmc2XyIcB31c0hEI4py1eSZoX7uOn0Qzu6urJ+32iQNQJtwAYV/TYRPIChVqCIfovSksWSn8NA3tqoWbU0WWv8p6ueKYA2F922ENa7P9ZvJ3EhKpaSklI27DhIdZazrkZmdi1Yr9z0/+WE9/bp2NOtLm3ARhZ9BeUU8ROkpY+Uyo/K6L8qkvH5b9RsTYicxIXYS+zbtp9sAeXmvWUQz8nPzTV6+v6/+g6GthzGiw0im9Z9B4tVEo0YBQHvjEgrfYIR3gJyvlh3RnDVW7jPsNClD26BNMf7/wD9DrV9d2JgS467groarSpKULYR4GvhVCPEhciPwiiRJZRy9QoirQoi65X+ra0ReBKzewqpSKHiucygTfzqEVpLoExZCQz93lu+7SGigJ9ENA+hQ14/919Pov2o3SiF45qGmeLmYX1A9ueMILWIieP3P9ylWF/PFTP3A5qX1i5kXNxNHVycmf/IcKkcHFEoF5/ad4s+vN9P3aYN5dUlL8c7vcOr7tByuemYfUsYtHNr1Qpt8Hc3VE2ivn0GqE4rz4y+DpKVkz09QmG82X8lbjxHYJZxuB5ZSqi7i6DP6KJOYrQvY0VWOnDr+3GdEvjteDlfdfpzkbcYLlyqFgueimzLx1yMytXhYTRr6urH8wCVCAzyIbhBAh7q+7E9Ip//qfSgVgmc6NrFYXgAXdhyjSUw40/5cSrG6iJ8MqJ8nrV/Asrg5eAT5EK2jfp74x+sAHFi1GdQGM45aLYU/rsB14jw5XPXAFrRJCTjGDUOTcBHNqYM4dOqN6r4oeZRVkEvhV+ajf+DOqJ+fmdGnzNaWFN4qpZI544cx4eWlaLRa+nbtSKO6tVj21S+ENq5HTNtw4k+d571VaxFCEBnWhLkThpl3ptVSuHYFruNflcvrr61yefXUldfpgzg81AtVWFvQauTy+uZdi3k7uP0gUZ3b8MWez+Rw1elLytI+3LiMCbHmI7rM5avo109weeIlOV/x29Am/41jtyFoblxGczYehwfiUIa2AY0WSZ1L4ffvV+jSVtT61cW9PEVkLe4K7bYQIk+SJDeD49+A75EXk3tKknTOIG0JcmjqXxiHq6Ygh6tWKuJbsGKqTW5y6hu2oyt499k74rgygq0pMbq/WD0hdnOwJSXGc71td5+xawsqN7IS/x1KDNspnf302D1KiXH91zvux38U8rjV75unbnx1T44b7sqIwbBR0B330n01mTeQJGmawaFn+XQ77LDDjnsJ93K0kbX4z+18tsMOO+z4J/FvmEqyNwx22GGHHTbEvyEq6b/RMBTYZj5ZsuEjF3Xq2cxXkThpM18Awt3yzt2qIgMr9h9YCYW7hX0b1YBaazsReFuuCyh8alZuZC20tn1FCRvu1BUebpUbWYk0je0kR22BeznayFr8NxoGO+yww47/Ef6PvfMOj6po2/hvdtMTkpAeQHpHhIReBBIpAemCUqT3Ll3AAgKCoohYkCIK9oIKSC8iVem995IEUigh2U2yu/P9cTbJ1mSBlRc/9+bKxZ6d5zxnzpzZM+2Z+3ZNJbngggsuuGAG58VI/e/gahhccMEFF5wI11TSvxCqklXwaNIFVCp0x3ag22dNt6AuXxP3em1AgiH5Gllr7cepd32zL1VjosjSZLF03Mc29RheWTaFgLDCqHL1GKz97TpznXdX/41BSjrUKk/fJubsqnNW/82+i4kAaLN1pN7XsnOqnc1MQNT0nkQ+Vw29Jou9ryzktg09hsLPlKT2vMGovdxJ2HKEQ6/b0GO4kMi7G48q+apekr71K5jna9NR9hmJBrU6Panpmewc18bKjyk6v9mHKjFRZGsyWT7uU67ZKLNhyyYTEBaISq3mwr7TfP/6EiyX9dTlquPxfB/lWe7fQvb238zS3aKa4NGyRy6Pv+6vdej2b7Wbr/HTR9HwuXpoNVrefOVtTh+zptZetOIjQsLy9BiGdrHeLOVMDQVn6js4W79iyLTB1I6thVaTyftj3uf88Qt2bacufZPI4hEMajrEOl+lq+LR/GVlc+fhP8neY86k7/ZMQzxiu2C4r+xe1u3fjO7wn3avBTDiraHUia2NVpPJO6PncM6GVsQHP71HUFgQWVqFKn58t1fz9ekoXFNJjwAhRDCwxXgYgTICy6FrrA08D/wCVMrZ8CaEqAl8CURLKbOMTKybgOpSyoJ3PwmBR2w3Mld8gEy7jVf3KegvHLHWPajdEu337xSoe1DVqMcw2ajH8PLMgbzdfpKV3WcmegxDFoyj5vP1gDwOIr3BwKyVf/FZvxaEB/jQ/ePVNK5UnDLhebw449vkUSR/t+skp+PtbxyLjK1GodIRrK0/luDostSY3YfNz79pZVdjdl/2j19CyoHzNPpmAhGx1Ui00GOYtf4In3VrSLi/N92X/kHjcpGUCfXPy1ezvAbsu30XOJ2Y/6JulSZRhJWKYGqTkZSMKkeXmf2Z036Kld3nwz7ILbMBC8YS/Xw9YFeegVDh0aYf2i+mI++l4jVkFrpT+5FJ5jz+umO7yVptLYxkiQaxdSle+ina1e9C1egqTJo9jl7PW+qyK5gyfBqnjpyxmeZUDQWcqO/gZP2KPD2GflSMqsiIt4czqq3tHcUN4uqjtavHIPCI64n223eV59h3GrpzB5HJ5gv6ulN/k7XBNj2KJerE1qZoqaK83LA3laIrMXrWSIa2sU28N3PEbM7a0dZ4WDyuqCQhRBDwAwrn3GXgRSnlbQub6sACwB/lHTtTSvlDQb7/Z+yqUsoUoyZDdeAz4IOcYyllFgo9xk5MZOqklPuB7cA441efAFMcahQAVUQp5J0k5F2j7sHpfajLmHPPuFV9luzDfzike1C9eS32/LINyNFj8HFIj8GS6fH4tWSeCi5EseBCuLupaVGtNNtOXrV73XVHLhJX3VpJLQdF42pw+SdF8yDFqMfgZaHH4BUWiHshb1IOKD2pyz/toFhcDfN8xafyVJAvxQr7KnoMlYux7az9CJB1J64RV6WY3XSAZ5rX5O9ftivXNGpY+OdTZio7ZaYqVhZDaiLy9i3Q69Af3YVbpZpWfhxFk7hn+f0nZfR47OAJCvn7ERL24LvTnamhAM7Td3C2fkW95nXZbKXHYFvzoOOAjnw731qBD0BVpAyG1FvIO0lg0KM/+Rdu5aMfOl8ADZrXY+PPisLbqYOn7GpF/FMwIB3+e0S8CmyRUpZD6WTbGvJkAD2llFWAOGCeEML6B2eBJ0GPwQpCCD+gAdAPa/3SyUB/IcQEwF1KaVsBxJZfv0BkWt6PRmE1NS8jUTgcVeFwPF+aiGfXSahKVrHrLzA82EKPIZVAG5z0AK8sf425Bz5Hm65hv4Uew617GUQE+OYehwf4cOuebR6k+Nv3ib99n9plIu3myzsiiAyTfGns6DFkmIw6MhJS8bbQkriVpiXCVL/C35tbabZ7fvF3M4i/k07tkvmxpENgeBC3Tbjy89OwGL58Mu8eWIw2XcNBSw0L/6BcCUoAeS/VJk+/ukodvEe8h2fXsfny+IdFhHDTTI/hFqGRtvUIpn4wme82fUH/0b2s0pypoeAIHNV3cLZ+RUhEMEkmzzE5IZlgG/oVvcb3ZMXiX8jUaG36EYUKI9MsnmMh6wZGXbEW3v1n4NlxOKJQ/i/5EAttjeSEZELsaGtMnDuOxRs+o8co+9OyD4rHSLvdDlhm/LwMaG9pIKU8K6U8Z/wcj0IlFGppZ4kndY2hPbBeSnlWCJEqhIiWUh4EkFLeEUK8A3wK2FersYmCtQCESg2Fw8n86T2EX2E8X5qAdvmbkGn9QrRJo2+He2pezxm4ebozYN4oKlnoMdjk6LcTM77hyEWaPl0StSqfNt2BfNnyb5kPW/s27EkHbDhxjaaViqJW5b/y5qjuAcDHPd/GzdOdPvNGUqH+04AJ46wD96g7vR/d0Z2g1+FWuxmeLwxHu3SavYzZ8Gf91ZRh00hKTMbH15s5n8/k+c5x+ebBluuxfTsza+G3rNqyi+gq5fPRUCgYD6TvYH2y2aHu+F50B/8EnQ73Bi3xenk0mo+tp/mMFykwLzl6DAunLSK8WP4dBnNH5oe6c4fRnfhLeY7RMXi2HYj2m9l2T3dEjwFg5ohZJCem4O3rzbRFb9L8haaO5zEfPEhUkqk8gBGLpJSLHDw9XEqZACClTChAuwYhRG0UNmv7i0FGPKkNQ1cgZ6L0e+PxQZP0lijEepUxE0/Og5keQ6eG9K1X0ThCyOttCL/CyPsWugdptzEkXFQYJu8lI28nogoMx3DzMgAxPeJ4tqtCN3z5yAULPYYg7hSox7BP0WMgby4/PMCXxLt5I4SbdzMI9bdNMrb+yCUmtbeeAijbuxmljXoMqUcu4mOSL+/IIDQWc/8ZCan4mOgi+EQGobXQRQgv5E2iqX7FPQ2hfrY3ma0/eZ1JcdVtpjXq0YIGxjK7cuQChYuEkPPYFA0L23oMoJTZ0c37eaZZLTib1zDIu+YjBOEfZM3jrzHh8d+3BY8W5oprL/buSIfuykL5iSOnCDfTYwgjKdG6551kosew/pdNPG2hx+BMDQVH4Ki+gzP0K9r0ak1Lox7D2SNnCTXRPAiJDCHVQr9C0WMoy7LdX6J2UxMYHMC7P77DhBcn5trItNuIQhbP8b5FfTB9joe24RHzktX9te/Vlue7KYv8p4/kaGucyM2bbW0N5TtNuoYtv22lYtSjaX7l4EGikoyNgN2GQAixGWUN1hJ2Wmy7fiJRuOh6SSkLHKw8cVNJxkXpWGCJUZNhPPCSMHYDhBCtUcj0WgBzhBA2f1Fmegz1lAduSLxs1D0IUXQPKtZCf/GI2Xn6C4dQP2WMvPHyQxQOx3A3bwj+x1frc/UYDm3cS72OTYAH02NIsNBjqFIshKsp97iRmka2Ts+GIxdpXPkpq3u6nHSXe5osqhW37hic/3ITG5tNZmOzydxYt5+SnRXNg+DosmSnadBa6DFob91Bd19DsFGPoWTnZ7mx3kKPoUhhrqbe58addEWP4eR1Gpe3nsK6nJLGPW021YraHuJv/2oDs1pNYFarCRzduJc6HRsp1zSW2T2rMvPMXXdQqVU8HRPFTUsNixvmPP7qZxqgO73fzMZ0mlBdqSYGC4H5H7/8ha7N+tC1WR+2rdtBa2Pvv2p0Fe6n3Sf5lvnLRK1WExik8Di6ual5tll9zp+5aF5mTtRQcASO6js4Q79i9bLfGRo3nKFxw9m9YQ9NTfQYMtLSSbXQPPj9qzV0q/kyver3ZmzHsdy4dMOsUQAwxF9EFRSOCFB+k+rKddGdNV+TEX553Jnq8tEYUqx3mv+2bBUDWgxmQIvB7Fq/i+adlN5/pehKNrUiVGoV/ibaGvWa1uHS6ctWfh8GzlxjkFI2lVI+beNvJXDT+MLPefHbpBkQQvgDa4DXpJQOSdY9iSOGTsByKeWgnC+EEH8CDYUQ+4H3URTeTgohVqK0nI61ntJA1h/f4vnCKyAEuuO7kCnxuNdviyHxCvqLRzBcPoEsUQWvXtMU3YPtP9vVPVD0GKJ5+8+PydJk8sX4T3PTcvQYPH08Gb7kVdw93BFqFad3H+PPbzbSMSpvgc1NreLVtnUZsnSjontQsxxlwwvz6caDVC4WQpPKxQFYd/gicdVKFThVkLDlMJHPVef5PXPRabLYOzpP86D5prfZ2EzRY9j/6hfUmTcItZcHCVuPkLDVvJF0U6l4tUV1hny3S8lXtRKUDfXn0z9PUjkykCbllUibdSeuEVe5mENTGMf/OESVmGim/TmfLE0WX5mU2aS17zKr1QQ8fLwYsmQCbsYyO7v7ODu+2URr09Umg4Gs1Z/j1XuKEuZ48A/kreu4P/cShhsX0J/ej1u9VrhVrIk06EFzn8wV9oQAYeeWPTR8rh4r9/yAVqNl6ui3c9O+2/QFXZv1wd3DnU++m4ubmxqVWs3fO/bz69erGdevXl6ZOVNDASfqOzhZv2Lv1n3Uiq3FFzuXkqnR8v7YD3LTPl3/MUPjHJRilwayNizHq+sEUAl0R7Yjk2/g3qgjhoRL6M8dwq1mc9zKRyENBuU5rl6cr8u/tu6lTmwdvt65jExtJu+MyYvoWrzhMwa0GIyHhwdzvpmF2t0NtUrFgZ2HWPPtWsbMHuVYvvO7pUf24DBWAb2A2cb/V1oaCCE8gF9R3qk/Oer4f6LHYJUJIaYC96WU7wkhtgGzpZTrTdJHApWA24BaSjnR+H0h4DAQl7PAYgsZcwc45SZHzrc/5fGg+OiDh4+gscSqoc7lSmr7TnGn+Rr7RoHTmQ5jTnfn1dVnlzqPX2fPn/bnux8UzuRK0r6Vvzbyg6LTr87b0/vL4ALXPx1G6wXOe5Z/XN/0yNvTJpXs5nBFnXX524e+nnF25UegOHAV6CylTDWG9Q+WUvYXQrwMfEHOvJqC3lJK+6FwPCEjBinlVJPPTWykz7dzXhpQ5h/LmAsuuODCA8IJYagOQUqZAjxn4/v9GJUtpZRfA18/qO8nomFwwQUXXPj/AhdXkgsuuOCCC2Z4XCOGfxL/iYYhbZXd5YcHQqr0L9jIQWT+uMFpvm65FXWaL4Crb+c7/fhAuCO9nOdr612n+WrmaR319bBwqrayEzUUvN6wOQP70Gi08nWn+co+eq1gIwehcbLuxKPiycrNw+E/0TC44IILLjwuuEj0XHDBBRdcMIMzlR7/V/jPNQwetWtTaPhwUKvRrFlDxrffmqV7t22Ld/v2Siy3RsO9995Df+WKXX/9pg4gOqYmmZpMPh43j4vHL9q1nbRkCuHFI3il+QirNLdqtfDuORxUarL+WEPmKtsUUO61G+E7ehppUwahv2ifFbLRtB6UiK2OTpPJ5jGLSDp+2cqm7oTOVHyhIZ4Bviys2N+mH5+GNQifMhhUKu7+vJ7Uxeah0IV7dyCgUxzo9ehS75I45QN08fnLefac2o/qMTXI0mTy2biPuJxPmY1dMomw4hFMbG4dX+5ZtxYBrwxHqFWkr1rL/a/My8ynQxv8XmiH1CvP8s7suegu23+Wbd/sRYWY6mRrsvhx3ALiT1w2S3f38qD7p68QXCIMqZec3HKA9e9Yk8OpK0bj1XEACGW/QNYWG/TWbfvkcj1l71hD9l+26a2dSZXtTApvgOZTe1ImphrZmix+H7eQRIs65ublwQsLRhJYPBxpMHBu80H+eMea2NOtWi28exvr/tY1ZK60U/frNMJ3zDTSJuVf9wHGTB9Bvdi6ZGq0TB89mzPHrKeTP/15HsHhQWQaabdHdRlnZfMw0P0XGgYhhB44ZrQ9BbyCsosObNNla0zsLwE9pJR3TPyNBmah8HzcFUK0AHImacsCN4w+jgJLgXFSytbGc9sDb6HwfWQDr0spzUn484NKRaFRo7gzbhz6pCSCPvuMzF27zF782s2b0axaBYBn/foUGjaMOxMm2HQXHVODyFJFGNZ4EOWjKjBwxhBebT/epm2duHpoMmwTiSFUePcZRfrb4zGkJFFo5mdkH9iN4YbFS8zLG8+4jujOncz3NkvEVCOwVARfPTuW8KgyNHm7Nz+1nWpld2nTQY5+uYke221TOqNSEf7GMK73nUz2zWRK/PQh97f+TdaFPOZX7akL3Ok0EqnNJLDL84SO60vCGPtx/dVjookoVYQxjYdSNqo8fWcM4o32E23a1oqri9ZemalUBI4dRfKo8ehvJRG2dAHaHbvNXvyaDVvI+HU1AF4N6xMwaggpo21z7ldoUp2QUhHMaTKa4lFl6TCzH5+0t55T3774dy7uOYnaXc2Ab16jQpNqWNKBe3UaTMaC1xV66zFzFXpri13EukM7yFyxkHzhZKpsp1F4A2ViqhFUKoIFjcdSJKoscTP68GV7a2r3vxat5cqek6jc1XT/djJlmlTjwjaTjZRChXffUaTPNNb9WZ+Rvd9O3W9ZcN0HqBdbh6dKFaNzg+5Uia7MhFmj6dd6qE3bN4fN5PRR2xTqD4t/f7PgGCWGxkiF/TSQBbxUAF22qX0qMMzCX1dgH9ABQEq5wcTffqC78bin6UlCiGrAe0A7KWVFoC3wnhDCXNEmH7hXrIj+xg30CQmg06HduhXPBg3MbGRGRt41vbzskuIB1G5Wh20r/gDg7KEz+Pr7UtgO9XDb/u34+aMfbfpRl62IITEew60E0OvI2rMV95oNrOy8X+yLdvX3kJ2V732Wbl6DUyt2AnDz0AU8/X3xCbNm2r156AIZFlQZZvl+pjzZV+PJvp4I2TrS1v6J33PmPE2av48ijaI1miOncbfDYpmDGs1qs8NYZucPncXH35dAG2Xm6eNFq/5t+e0j25s1PSpXRHf9Bvp45VlmbN6KV6P6ZjZmz9I7/2dZpXkNDvyiUJVfPXQe70I+FLKgA8/WZnFxj/Ji0mfruXHiEgEWbLqqEuUwJJvQWx/ajlvVOjwMnE2V7SwKb4DyzWpwdIVSXvGHzuPl74OfRR3TabO4YiwvQ7aexOOXKWTBpKsuWxHDTZO6v3sr7rVs1P2X+qJd9T1k5V/3ARq1aMDan5XgjhMHT+IX4Efw/0/a7X8MD8qVtAOlV+8o9gC5ITNGYR0/4DWUBuJBMA54W0p5CcD4/ywULiWHoAoNxZBkQj2clIQ61HoHpnf79gR/8w1+gweTNt9+ZEdQRDDJ8Xn+UhJTCAq3JjDrOrY7qxb/RqYm0yoNQFU4BENK3vSLISUJVWHzF6y6ZFlEUBi6QwVTnfhGFOa+Ce32/YRU/CKsX74FwS08hOyEvPvTJSbjZuP+chDQqTn3t++3mw4KaZ4pVXlqYgqFw61/tJ3HdmXN4pX2yyw0BP2tvDLT30q2+Sx9X2hH+E9f4z9sIHfmfmw3X/7hQdw1ydfdxFT87dCBA3j5+1DpuWjO7zpunq+AYAy380jtDHdSbNNbP1MfnwnzhINjYgAAIABJREFU8er9ql16a2dTZRcERym8AQpFBHHPpLzuJaZSKNx+HfP096Fc02guW5ZXkIN1PzgM3UGHaH4IjQjllsnv8lZ8EqERtndav/bBRJZvWkKfV3o45NsRPEba7X8MDjcMQgg3FFZTh/gXhBBqlF15q0y+7gp8h9LAVCiIJtYCVYADFt/tN37/8LDRi9T89hsp3btzf+FCfHvYrzC22X3N/ZWsXIqIkpH8vSGfSm2bv9ss3bvHMLRff2rDzpY7x6mtHxh23Pi3icGrSnluf74i39MdoSovUbkkESUj2b/hbxvG+TiycY/pK1Zys/PL3Pt0Ef59XrY+5wH9gULA1m3+CHZ/uYHUa5brKQX70R3fS/pb/ch4dyT6s4fx6vaK/Xw54mtaXzLeGYH+zGG8XrbDleSQa8cpvB2p+7m2ahUdPhrOvi82cOdakkWiA3W/5zC0XzlW9x8kb28On8HLz/VlcPsRVK/zDC07NXf4GvlBPsC/JxWOLD57CyFyAtt3AAXpJObYl0R5kW8ySeuCQoBnEEL8AnRGUWFzBALr15Kt75QEE9rtOeXK0aNIEQxJSahMepWq0FD0ybZ7RADarVspNNr8hxbXsxXNuigV6PzRc4QUCUVZeoHgiGBuW7A4VoiuSJmqZfhs52LUbmr8gwN46/uZMD+Px8aQmoQqOK+NVAWHYrhtwuzp5YPqqVL4vaHM94qAIHzHzST9vSm5i3BVezWlSleFdvvWkYv4mdBu+0UGkX4zf8lNW9DdTMY9Mq+83CJC0N2ypi/2qVedoMFduNZjAjI72yq9Wc+WxHRpBsDFo+fNqMqDIoK5bcHKWS66AqWqluHDnQtRuakICA7gte+nwxiTMruVhDosr8zUYSH5PkvNpj8IHG/+Aq7Xoxm1u8YCcP3IRQJM8hUQEcQ9O3TgHWcNIPlSIjuXrrNKM9xNxt2kx6sKDM6f3nrPRjzb9LZ5HWdQZT8ICqLwrtGzGVFdlDoWf/Qi/ibl5R8RxH0705LPz+5H6qVE9i211lc3pDxg3Q8Mwnf8TNLnTDFbgH6hd3vadW8NwKnDpwkrklduYUVCSb6ZP4X6xl+3UDmqkpXNw+BJHgk4CkcaBo1x/t9RaKSU1YUQAcDvKGsM841rAeWATcZeiAdwEccbhhNATczUWogGbK5GmfKc32zSRAJknzmDulgxVBERGJKT8YqN5e6MGWbnqYsWRX9DoXj2qFs393MO1i9fy/rlawGoEVuTlr2eZ+eq7ZSPqkBGWobVS27D1+vY8LXyAgktFsaUpa/zRpcpLDWZDtdfOI0qoiiq0AgMqcl41Isl/WOTfGnSuTcwT5zJ7/UP0HyzwOyHcWzZZo4tU+QMS8ZW55nezTi3cg/hUWXISsvIdy3BHrTHzuJeogjuRcPJvpVCoVaNSRhnvpnLs1IZwqeN5PqA19Cn2t6Atmn5OjYtV8qgemwNmvdqxZ5VOykbVR5NWgZ3LMps89cb2Py1MkccUiyU8UtfY0aX15ljwi+Xdeo0bk8VRR0ZgT4pGZ+msaS+OdPMj7pYUfTXlefn1aAuumvmz3LPV5vY85XSb6kYE0X9Xs05smo3xaPKok3LIC3Jusyaj30Rr0LerJhom0LfcPUcqhCF3lreTcEtqhHar8wXe4V/YeQ95Z7dnq5ttTCd5yuPKlveTcEtuhHaZXPs+7JBlf0gaNKwLt+tWE3Lpo05euK0FYX3geWbOLBcKa+ysdWp2as5J1ftoUhUWTLTNDYbhsbjOuNZyIffJyyxeU2rul8/lvT5FnV/gEndf+MDNF8vsIpKWvHlb6z4UolDqf9cXTr36cCm37ZSJboy9++lk2LRYVOr1fgF+HE39S5qNzUNmtZj3w7LCYmHg/4JHgk4in8sXNUYcTQSWCmEWIAyjTRVSjkrx0YIcUkIUUJKaT+GMA/vAT8JIbZKKS8LIUqiyHx2cjhTej1pH35I4TlzQKVCu24d+suX8e3TB92ZM2Tu3o1Phw541KiB1OuRaWncnTXLrrsDW/cTHVODT7cvNIar5q1HvL92HmNbOThFYDCg+XI+vpPeBZWKrG3rMFy/jFenPugunUF3YLfDtwhweethSsRWo+fO98nWZLFlbN5LrMv6mXwfp7CU15/chQrt6+Pu7UGfvfM58d029n7wi0l5Gbg1fQHFPp8BKjV3V2wk6/xVgkf0QHv8LOl//E3o+H6ofLwoMk+h8tYlJHFjqB2VNODw1gNUj6nBB9sXkKnJZOG4j3LT3l47l8mtxjh2k3oDd97/iJB574BKTfrv69BdukyhAb3JPnUW7c7d+HVqj2etGkidDpmWxu3p9ncon/7jEBViqjPhz3lkaTL5aXxexNCotbP4sNUkAiKCeG5EB26dv8HINQot9+5lGyFzdZ4jgwHtis/wGTxNCTH9e7NCb93SSG99Yi/ujdrgVqWOIgaVkYb22w9tZ8rJVNlOo/AGzm89TJmY6gzdPjc3XDUH/de+zZJWkykUEUTDEe1JPn+D/muURnv/8o0c/n6b2T1qls7Hd7JF3e/cB93FB6/7ALu3/EX95+rw8+5v0GoymTE677kv37SEns364+7hzoffvoubmxsqtYp9Ow6w8pvfmfiOg/UvHxieAMbqR0WBtNtCiPtSSj87aVMx0mXbsxdCrEahhn0LaCmlPG2SNhe4KaV8x3i8DSU8db/xuAnm4aodgWmAO0q46ptSSpM3mW3kjBgeFUMuOY8SY2n9tIKNHMRXO51LidHc13q66GExTeM8Sow5RZxHiTE/Idxpvl5r/3B6zTbxBFNivFvDeZQYw+pai+08LOJ2OK/M/orf9si02y+X6Ohwhr6+8ssjX++fQIEjBnuNgjFtakH2Uso2xo9f2bAdY3HcxOJ4G7DN5PgXoMCGwAUXXHDhf4UnOQzVUTxx0p4uuOCCC/9mPK6oJCFEkBBikxDinPF/u/HCQgh/IcQNIYT9mG0TuBoGF1xwwQUn4jHuY3gV2CKlLAdsMR7bw3TgT0cd/ye4koY5aW1gpofOKX4Ahu623on8sOiXZR0i+ih4TeXhNF+TDM4L3nsnwXlykFNKOk8O8oUVzltHEbb2QTwknEmTDTDhwHSn+epZ49EXeXOwJsp5krvOgP7xBay2A5oYPy9DmXa34pcRQtQAwoH1KJGdBcI1YnDBBRdccCIe44ghXEqZAGD832rDsBBCBbzPAzBEwH9kxOCCCy648LjwICwDphtxjVhk3IOVk74ZhazUElMcvMRQYK2U8pq9Xey24GoYXHDBBReciAeJSjLdiGsnvam9NCHETSFEpJQyQQgRCdjiu68HPCuEGIrCU+dh3FKQ33rEf7Nh6Dt1AFExNckyaihcykcPYKJRQ2GMDQ0F32drEP7aIIRaxZ0fN5CyyJwJNKhPBwJfbIHU6dGn3iV+0rx8tQqcpVMQFFON8jN6I9Qq4r/ZypWPVpqlCw83qnw8jELPlCb7dhrHB36I1pLDxgR9pg4gOqYGmZpMPhn3YYHlFVY8nLHNR1ql+TeJotjUAaBWkfLdJm5+as6r5FenMsXe7I93pZJcGvYed9YWvLnphTd7UzkmiixNJt+MW8D1E5esbIYsm4R/WGFUahUX9p3mp9etWV2crdMxdNoQasXWIlOTyXtj3uf88fN2bactnUpk8QgGNh1sM33ItMHUjq2FVpPJ+2Pe5/zxC3Z9TV36JpHFIxjUdIjNdGdpKDhb2wGg19T+ufV/wbj5+db/cUsmE1Y8nAk26r97jdr4DhyhbGLduAbtT+bP0rNlW7xad1A2GGo0pH/0HvprjuyxdQyPkRJjFdALmG38f6WlgZSye85nIURvoGZBjQL8C9cYhBB6IcRhIcQRIcRBIUT9gs/KQ5RRQ2FE40F8NukTBs6w/QMCRUMhPz2AiKlDudb/DS60HIx/68Z4lDXXEdaevMClDqO41GYY9zbsJHxCX7vXMtUpWDJpAX1nDLJrm79OgaDC7L4c7jaLv54dQ3iHBviWN98AV6RbLNl30tlTdxTXFq6l7Ovd7F5LKa9IRjQezMJJnzAgn/KqHVcXbYbGTr5UPDVjEOd7TuNU7HAKt3sWr3Lm5ZV1I5krYz4k9bftdq9hispNqhNaKoLpTUbxw+TFvDizn027L4bN452WE5jVfBx+Qf5EPV/PKm+FRo3izsSJpPTqhVdsLOoSJcxMtJs3k9q3L6n9+5Px3XcUGmbJJp+HWjG1KFqqCH2e7cu8iR8y8u3hdm0bxDVAk26nzMx89ePDifMZka+v+mjz8WWqobB20ufEzehj0+6vRWtZ+Nx4lrSaTLGa5SnTpJqVTftWzfhs7gwbZysw1XaYOmEk09/LP0qyekwNIkpFMrrxEBZP+pR+M2w3klCwTofvkFe49+YE7gzphWej51A/Zf4ss7Zt5u6wPtwd0R/Niu/wGWD/WT4M9Bgc/ntEzAaaCSHOAc2MxwghagohbHOQOIh/XcNAnt5DNWASCvW2w6hloqFw7tAZu3oAXj5etO7fjhV2NBS8nylP1pV4sq8pWgX31myn0HPmL5wMU62Cw6dxy0erwFk6Bf7RZdFcuon2yi1ktp6bv+0mJK6WmU1oXE0SflQi126t/ovCDZ+2m69azWrzZ255ncU3n/Jq078dK+zky7d6OTIvJ5J19SYyW8ftVTsIaF7bzCbr+i00p6+AdOwHU7V5Lfb+ojQilw+dw7uQL/6h1tFe2vvKy1LlpsbN3c1qDtjZOh31m9dj04otAJw+dBpffz+CbOgBePl48cKAjnw737ZiGUC95nXZbOXLdvl3HNCRb+dbK8rlwFkaCuBcbQfIqf/bAMfq/692fpdu5Suhj7+BIVF5lpnbt+Jet6GZjdSYPktvpyvrSCkd/nvE66RIKZ+TUpYz/p9q/H6/lNJKklFK+aWU0n7PwgT/xobBFP7AA8WqBUcEk2LC1Z6amEKwDY2BLmO7szofDQW3iGB0CXmMjdkFaBUEdmqRr1aBs3QKvCKC0Jr4yYxPwdNCi8EzMojMG4qN1BvQpWXgHmT7Rx4UEUxKfN59piQm29SceGlsd1bnky/3iGCyTPxkJ6TgHmG/vBxBQHhh7pjc653EFALsaCgMWT6Ztw8sQpuu4fBacwp0Z+t0BEcEk2RSx5ITkgi2ca+9x/dkxeIVdssMICQimCSTcktOSCbYRgej1/ierFj8C5kaOz1pnKeh4AgeRNsBICgiyKyepSamEGSj/r84tpux/tsW7FEFh2BINtF3SE5CHWxdXp7Ptydwybf49BlM+kI7XFUPif+UHsMTBG/jVNJpYAnKxg3H8QAaCnvz01BwgHc/B/5tY/CuWo7UJT/bTId/WKfAAdjl0ndAp0Apr4j8y8uB+3tQOJK3HCzo+Tav1R6Mm4c75evbHyHl58dxnY6C81W6cmmKlCjCrvUFrKM4oK2R42t3Ab6cpqHgAB5E28FemqWLEpVLEf4Q9d/WHWau+Y07/buR8cVCvF/qacPi4fFf0WN40pBLAy6EqAcsF0I8LS1qomkY2KzxM3mpVxcALhw9R7CJhkJQRDCpFpS85aMrUrpqGT410VCY9v1M6Jm3d0SXmIxbZF5PxD0iBN0t66GyT/3qhAx9iSvdJiKzzDfIOUunIKF9XtuoTUjBy8SPZ5FgMhPN/WQmpOJZNJjMhFSEWoVbIR90t/OI4Fr0bEVTY77OHz1PcJG8+wyOCLFRXhUoXbUsn+xchNpNTUBwAFO/n8HULq/l2mQnpOBh4sc9Mpjsm/anFuzh2R7Nqdf1OQCuHrlAoMm9BkYEc9eOhgKALjOb45v3U7VZTfhic+73ztDpaNOrDa26xgFw5shZQk30AEIiQ0mxuNfKNSpR7plyLN+9DLWbisDgQOb8+C4TXpxIm16taWn0dfbIWUJNyi0kMoTUmyk2fJVl2e4vUbupCQwO4N0f3+H3Lu/8IxoKjqAgbQdQ6n+sUdvk4tFzZvUsyIa2SbnoCpSuWob5Oxfl1v/Xv58BM/LWCAzJSahCTPQdQkIxpNh/llnbt+A7bDTpHzzUbdrE/weupH9jw5ALKeUeIUQIEIpFqJZpGFinEm3l/h+U3my0UUNh16rtlDNqKFjqAWz8eh0bTTQUJi19nTe7TGG6yYZgzbGzeJQsgnuxcLJvpuD/fCNujHnXzI9n5dJETh/B1b6v29QqcJZOQT/yMpZ26AI+pSPwKh5KZkIq4e3rc2KI+bRH8ob9RL7YmHv7zxHWpi63d54wS9+wfC0bjJoT0bE1iOv1PLtW7aBcVHky0tJtlNd6Nn69Pre8Xl36mlmjAJB+5ByeJSPxeCqM7MRUCrd9lssj3rcqk4Kw46uN7PhqIwCVY6Jo1KsFB1ftpmRUObRpGdyz0FDw8PHEy9ebe0l3UKlVVI6J4sLe01QwsXGGTsfqZatZvUyh364dW5t2vduwbeU2KkZVJD0t3aox/f2rNfz+1RoAwouFM/3LaYx/cQICweplv7N62e9GX7Vo27sN21b+ScWoimSkpZNqUf7mvsJ468tpTHhxIo1UQf+IhoIjKEjbAczrf5Sx/u9etYOydurZ5q/Xs9lYz0KKhTFh6RSmd3mNj00GgLqzp1EXLYYqPAJDSjKejWK5P8d8UkFVpCiGeOX5udeqhyH++kPfpy04TS3xf4h/dcMghKgIqAGHeaIPGjUUPjZqKHxqoqEwZ+08xjuqoaA3kDhtAU8tnaGEq/6saBWEjHoZ7bFz3N/6N+ETFK2CYh9NAiA7Ponrg9+y6c5ZOgVSb+DMpKVEfT8Z1CoSvttG+pnrlJ7QmXtHLpK84QDx3/5B5Y+HU++vD8m+c5/jg+zPsR7ceoComJp8tP0zsjSZfGKSrzlrP2B8KwelJPUGrr2+iLJfT0WoVaT8sAXt2WtEju1GxtHz3N20F59qZSm9eBLqAD8CmtYickxXTjW1DhPOwck/DlElJoo3/vyQLE0W34xfkJs2Ye07vNtqIp4+XgxYMgE3D4V3/+zuE+z6ZhONTAOinKzTsXfrXmrH1uLLnUuVcNWxc3PTFqz/hCFxjkfB7N26j1qxtfhi51IyNVreH5vXtf10/ccMjXNoLRFwooYCztV2ADhkrP/ztn9mrP95v8tZaz9gkqP1zKAnfcE8/Ke/ByoVmZvWor96Ge+X+6I7d5rsv3fj1boj7tVrgF6HvH+f+3MfKH6lQDxGSox/DAXqMTxpEELoydOdFsBkKeWa/M7pVKKtU25yuhO5kqZneTrNVz+t87iNAD7zsr+A+aCY5MTfyJdq53ESTSl502m+elx4QrmSVLYX4h8WTypX0sdPO48rKXjNn4/8ABoVfc7h9832G1v+nXoMTxqklOr/dR5ccMEFF+zh39XVto1/XcPgggsuuPAkw7X47IILLrjgghlcDcO/BF+0c85Ed7ffnLft44fxkU7z9cuse07zBbBstPO0Ip6esddpvo6/Wa9gIwfRbPaDx+bbw4aXfZzmS/jbVdJ9YGQfveY0X+DcdYHlB+YWbOQgChVr4jRfzlhd0zu4c/9Jxn+iYXDBBRdceFx4kjeuOQpXw+CCCy644ET82yI9beE/1zCoK0Xj1XEgqFRk79lI1mZzmgq32s/h2b4v8o6yNSJ7x+9k79lo19/AaQOpEVOTTE0mH46dx4V8KJFf+/x1IopHMLyZdRz7rispzNlxFoOUtK9chL41SlrZbDx3k8/2XkQIQflgP2a1sE/tUHN6D4rGVkenyWTP6EWkHrtsZVNtYmdKd26IR4AvP5Sz4twCQFWiCh6NXwSVCt3xnej2b7CyUZergXvd1gAYkq6Ttd6a1toUb7w9gSZNG6DVaBk/4k1OHD1tZePu7sbUd16lboOaGAwG3p/5CZBhZuPsMnvlreHUi62DVqNl5uh3OXv8nJXNRz/NJSQ8mEwjOeIrXSdY2ajLR+HZti8IFdn7NpO97VezdLcaMXi26onhnrLpLXv3OnT7Nlv5AVCXropH85dBqNAd/pPsPb+b+3qmIR6xXTDcV0I2dfs3oztsW9rXrVotvHsPB5WarK1ryFxpm7zPvU4jfMdMI23SIPQXz9q0AefRZP8TFN7vvz+NuLgYMjI0DBgwlsOHzfme/Px82bIl77dftGgk3333q6Wbh4JrjcEGjCIQfhbfVQAWAoGAJ7ADWAG8YzQpC9wANMBRKWVP43kfAp2Ap6SUBiFEHyCnZlUGzgB6YL0jHOMIFV6dh5DxyWvIOyn4jPsA3fG/MSSaz8XqDu4g82frCmqJGjE1KVKyCIMaDaRCVAWGzBzKuHZjbdrWi6tnlxJZb5DM/vMMC9pFEe7nSfcf99G4VAhlgvKK8cqdDJYeuMyXL9TE38ud1AzbJGIARWKrUahUBCsbjCUkugy1Z/VmfeupVnY3Nh3k7BebaLvrPduOhMAjpiuZv8xD3r+NV9dJ6C8eRabm6SWLwDDca8Wh/XEOZGaAt33GTYAmTRtSsnRxYmu3o3qNqkyfM5mOLay5aoaN6U9KUirP1WmPEILAwgFQo9I/Vmb1YutQrFRRXmrYgyrRlRg36xUGtrG9EW3a8JmcPmr6wjRZkxEqPNsPQLNkGvJuCt7D30V3ch/ylvnu2uyju8haWcDOYiHwiOuJ9tt3kfdS8eo7Dd25g8jkeDMz3am/ydrwVQG+VHj3HUX6zPEYUpIoNOszsvfvxnDDQofAyxvPlh3RnTuZrztTmuyyUeXpN2Mwr7e3biShAJpsFArvbi+0ZfJ02/XQlML76InTTH/vY75bPM+uvxYtYihbtiRVqjSidu0o5s+fSaNG7cxs7t9Pp06dlrnHu3evYeXKdYwYYZu6/UHw/2HE8LhI9OYDHxjpsisBH0kpNxiPqwP7ge7G45xGQQV0AK4BjQCklF+YnBMPxBiPC24UAFWJ8hiSEpApN0GvQ3dwO25V6z70TdVtXoetK7YCcObQGXz9fSlshxK5/YD2/PCRteAJwPGb93gqwJtiAd64q1W0KBfOtovm/C6/nrjBi1WL4e/lDkCQj/1NbU+1qMGln3cCkHzwAh4BvniHWS8oJx+8gMYOVw6AKqIU8u4t5L1kMOjRnd2Puow5N7/b0w3JPrJNaRQANGl2/QE0bdmYX39Uer2HDxzDP6AQoeHW7JedurVjwYdLAeWHdjvVPJ/OLrOGLeqz/meFOuLEwVMUCvAj2AZVdkFQPVUWQ0oCMtVYx47sxK1y7YJPtOWrSBkMqbeQd5LAoEd/8i/cykc/lC912YoYbsZjuJUAeh1Zu7fiXquBlZ33S33Rrvoesuw3ouA8mmxwPoV3mzbN+eYbRQRq795DBAb6ExFhJYecizJlShIWFszOnc4JlDAgHf57UvG4GoZIILfLJKU8lo9tDmKA48ACoKszMqEKDMZwx4Re+U4yIsCaDtmtWn18Jn6EV99JiED7GgrBEcEkJ5hSUqfYpFd+edzL/LrIPoX3rXQt4YXyds+G+3mSlG5ue+VOBlfvZND75/30/Gkfu67YZwHxjihMugm9cnp8Kt4R9umV7UH4BiLT8naVyrTbCF/zBkYUDkdVOBzPF8fj+dJEVCWq5OszIjKMhBuJuceJ8TeJiDT/0RYyRuaMmTSMVVu/5ePP3yUk1Pwl7ewyC40I4ZaJut6thCRC7ehnTJ47gS83LqL3Ky9bpYmA4NxpSAB5NwURYN3AuD1dD+9X5uL18nibdRBAFCqMTDPxdS8VUcj6Oaor1sK7/ww8Ow5HFLLdmKmCQjCkmNBRpyShKmx+f+qSZRHBYegO5scqrMBZNNmO4EEpvIsUieD69bxR7Y0biRQpYks2WcFLL7Xjp59WP3T+LKGXBof/nlQ8robhA2CrEGKdEGK0EMKReMiuwHfAr0BrIYT7P5Izi2Gf7vhe0qf1JeOdEejPHMbr5fw4WgqmRC5VuRSRJYvw14Y9j5RNvUFy9a6GxR2imdXiad7aeoq0zGzbuXoAOup84cBmfSFUiMAwMn9+n6x1S/Bo2gM8vfOxL7jM3NzcKFI0ggN/H6ZtbDcO7T/KpGkOcuWY4FHLzNaUwLQRb9OzaX+GdhhFtdrPENepWcEZsXCjO7WPjNmD0Mwbg+7cETxftJZBddjXucNoPh6DZslr6C+fwLPtQNvn2eZ1N0v37jkM7VefOpQNp9FkO4AHp/B2zEcOOnduy48/rnqovNnC46LdFkIECSE2CSHOGf+32fsTQhQXQmwUQpwSQpwUQpQsyPdjWXyWUn4hhNgAxAHtgEFCiGpSSptdaCGEB9AKGC2lTBNC/A00B/LlRLLwkUu7/WFMVfo8XRzDnRTcA03olQNDkPcshqQZeVMh2bs34Nm2t1lyq57P06JrCwDOHT1HSKQpJXUwqRb0yhWjK1KmahmW7Po8l5L67R9mwf48wrcwXy9upuXNwd68n0morzmXUpifF89E+OOuVlHU35uShX24ekdDlXClvSzfuylluyv0yimHL+JbJJicsZFvkSA0N+1PGdmDvH/HrIcqChVGppv7Mdy/jSHxkqKFfC8FefsmqsAwDDfz5q579H2Rl3p0BODo4RNEFs3rvUUUCedmovmegtupd8hI17BhjTJNt3blJjp3bw+b1uaVhxPKrGOvdrTt/jwApw6fIaxI3sglLDKU5JvWI4zkRKWnmpGuYdNvW6hcvRKc3pdXZndTEIF5IwAREGyjjuVRnOv2bsazlW1tB5l2G1HIxJd/EPK+BS+QxsTXoW14xLxk05chJQlVsAkddXAohtsm9+flg+qpUvi9oczdi8AgfMfPJH3OlNwFaGfRZE+3YN4tCI5QeA8a1JO+fZWJhQMHjlKsWN4+oaJFI0hIsM2NVbVqJdzc1Bw65MgkhmMwPL41hleBLVLK2UKIV43HE23YLQdmSik3CSH8cEAj6LEJ9Ugp46WUS6WU7QAdkJ9aShwQABwTQlwGGvKA00lSykVSyppSypp9ni4OgOHqWVShRRBB4aB2wy26EbpOcEfHAAAgAElEQVRj5r0Z4Z/3InSrWgfDTfOF6bXL1zCq5UhGtRzJXxv2EPtCLAAVjBTelhoK675eR+9avejfoB8TX5hA/KV4Jr80ycymSnghrt7N4MY9Ddl6AxvO3aRJKfNhfkzpUPZdV3zf1mRx5U4GRf3zeuZnv9zM2mZTWNtsCtfXH6BUJ0XOMCS6DFn3MvJdS7AHQ+JlRGAYwj8YVGrcytdEf+GImY3+whHUxYwk1l6+iMJhGO6aD/O/WvojrWO60DqmC5vW/kGHF5UIpuo1qpJ27z5JN62nBbZs3E7dhjUBqN+oNufPmEe8OKPMflm2kt7NB9K7+UC2b9iZ2/uvEl2J+/fSSbF40anVKgIK+yuf3dTUb1qXi2cumZfZ9fOogiMRhcOUOlatIfpT+8xsTBtbdeVaGG6ZU3jn+oq/iCooHBEQAio16sp10Z09ZO7LLyDPV/loDCnxlm4A0F84jSqiKKrQCFC74VE/luz9JsI+mnTuDWjPvRFduTeiK/pzJ80aBVBosie1Gs2kVqPZv/Fvnn2hCUC+NNlDa/dlZMOBTO00mYRL8Q/cKIBC4b1q/RaklBw5fsomhffChcupU6cldeq0ZNWqDXTv/gIAtWtHcfduGomJt2y55sUX2zl1tACPVainHbDM+HkZ0N7SQAhRGXCTUm4CkFLel1JmWNpZ4rGMGIQQcSgtW7YQIgIIRolCsoeuQH8p5XfG832BS0IIH0duyi4MBrQ/f4bP0LeUcNW/NmFIvIpHq+7or55Df3wv7o3b4vZ0baUHnJGG9mv70Q/7t+6nZkxNFu1YrISrjsuz/XDdfEa1dGyKwE2lYmKjCgxdeQiDhHaVIykT7Menf1+gcpg/TUqFUr94EHuuptDxmz2oheCV+mUJ9LY9u3Zjy2GKPFeNdrvfR6fJYs/oRblprTbNZG2zKQBEvdaFku3r4+btQYf987nw3TaOvv9LniNpIOuP7/HsMEoJlzyxC5magHvdNhhuXUF/8SiGKyeQJSrj1eNNkJLsHStAm273Xv/YtJMmTRvyx75VaDVaJoycmpv2+x/f0zpGEVR6Z9qHzF0wg9dnjCM15TYTRkylSf9S/1iZ7dnyN/Vi6/Djrq/RarS8baKt8eXGRfRuPhB3Dw/mfvsubm5q1Go1+3YcYNU3axjSzT/PkcFA5solePd7Q6lj+7ZguHkNj2Zd0F+/gP7UPtwbtEJduRboDUhNGtofP7KRI2P5b1iOV9cJoBLojmxHJt/AvVFHDAmX0J87hFvN5riVj0IaDKC5T+bqxbZ9GQxols7Hd/K7oFKRtW0dhuuX8ercB93FM+gOFKAkZwGn0WTjfArv9eu3EhcXw8mTO8jI0DBw4LjctL//XmcWjdSpU2vatevlcF4dwWMcMYRLKRMApJQJQghbK+zlgTtCiF+AUsBm4FUppT4/x06n3RZCGFAihnIwFygGPE/ejvM5UsqvTc7ZBoyTUu4XQvigLFSXlFLeM7H5BfhBSvmD8fgyUFNKaX8Vyoi0ka2dcpPdfnOGFwU/jC/uNF/OpsToOMHXab6eXEoM670TD4sNLzuPQuRJpsQY8ldAwUYO4omlxNBefWQa7HKhNRx+35xPPjgI45S3EYuMImMACCE2A7ZWzqcAy6SUgSa2t6WUZusMQohOwOdAFHAV+AFYK6XMd7OR00cMUkp701N2iVaklE1MPmcAVuENUsqOFsclHy6HLrjgggv/HB4k2shUadJOelN7aUKIm0KISONoIRILFUsjrgOHpJQXjef8BtRFaSzs4rGtMbjgggsu/BcgpcHhv0fEKiBnHqwXsNKGzT6gsBAiJ+omFsh/9yKuhsEFF1xwwal4jBvcZgPNhBDngGbGY4QQNYUQSwCMawnjgC1CiGMoQeh2FqLy8K+T9nwYOEvac3FN583lt/vLuUJ0C32cJxU61vY+vIfCijl1nOar54SDTvM1N+x+wUYOYswt560LJOsfPrbCEhqD7T0bD4s1Uc57VxTdcqlgIweRdn2b03y5h5R+5DWG4kFVHS6oq6nHXNKeLvwzcGaj4IILLjwanmSqC0fhahhccMEFF5wIveHJpbpwFK6GwQUXXHDBiXAJ9fxL0XfqAKJiapKlyeTjcfO4lA+P/MQlUwgvHsGY5iOs0tyq18anr8Jvn7llDZm/fmvTh3vdxviNn8a9CYPQXzhj91oj3xpG3dg6ZGoymWVHD+DDn94n2EQPYGzXiaAxp/P2fbYG4a8NQqhV3PlxAymLfjJLD+rTgcAXWyB1evSpd4mfNA9dvO2doQCDpg2iVkwtMjWZzB07N1/NiTc+f4OI4hEMbTbUKm3XuXjeXXsAg5R0iC5D30bmhHtz1h1g3yWFukCbrSc1XcvOyZ3tXgugz9QBRMfUIFOTySfjPizwWYYVD2dsc+uNh171ahE4dhioVKSvXEvasu/N0v26dcKvXSukXo/hzh1S35qD3s5uWmfmC2DEW0OpE1sbrSaTd0bP4dzx81Y2H/z0HkFhQWRpFbK68d1eRZNkLV86ZvoI6sXWJVOjZfro2Zw5Zl3HPv15HsHhQWQafY3qMo7bKeY7591r1MZ34AhQqdBuXIP2J/O679myLV6tO4BBj9RoSP/oPfTXLCi+TfCw+gnjx08zs/sntB0eFP8f1m2fuIZBCPEWsF1KaVu55BERFVODyFJFGNF4EOWiKjBwxhAmtR9v07ZOXD37PPIqFT4DRnH/rXEKv/07n5G9bxeG6zb47Z/viO5s/hFidWNrU6xUMbo17Enl6EqMmTWKwW2G27SdPvxtzpjqAZiuMahUREwdytXeU8hOTKbUinmkbf2LrPN5m520Jy9wqcMopDaTwG6tCJ/QlxuvzLZ5rZoxNSlasij9G/WnQlQFhs8czuh2tnee1o+rjzbddnnpDQZm/b6fz3rFEu7vTfeFG2hcsRhlwvI2TY1vWSP383d/neF0wm1brnKhPMtIRjQeTLmo8gyYMYTJdp5l7bi6aDNs62GgUlF4wkhuDZ+A/mYS4cs+RbN9D7pLec8y+8x5bvYcgszMxPeFNgSOHEjK5Bn/bL6AOrG1KVqqKC837E2l6EqMnjWSoW1sNyAzR8zm7FH7wjr1YuvwVKlidG7QnSrRlZkwazT9Wls34ABvDpvJ6aN2OjEqFb5DXuHea2MxJCcR8MFCsv/aZfbiz9q2mcx1CtWEe536+AwYRtobtvUaHkU/wRLO1nZ4GPx/WGN4osJVhRBqKeUb/1SjAFCrWR22rfgDgHOHztjlkffy8aJ1/3assMMjry5bEUPiDQw3E0CnI3vnVjxs8dt37Ufmb98jC+C3b9iiARt+VpTiTh48hd9D6gF4P1OerCvxZF9LhGwd99Zsp9Bz5juGM/4+ijSOODSHT+Nmh14aoG7zumxZsQUoWHOiw4AOfPeRbVWw49dTeCrIj2JBfri7qWlRtQTbTl+3aQuw7tgV4qqWyPdeazWrzZ+5z/Isvvk8yzb927Hio5+s0gA8qlQk+9oN9DeUZ5mx6Q+8G9c3s8k8cBiZqZRZ1rFTqMNCbblyar4AGjSvx8aflZ/DqYOn8PX3I+gh6gVAoxYNWPuzosB34uDJh65jbuUroY+/gSFRKa/M7Vtxr9vQzEZq8qKrhJe3FSusKZypn+BsbYeHgZTS4b8nFY+tYRBClBRCnBZCLBNCHBVC/CyE8BFCXBZCvCGE2Al0FkJ8adzGjRCilhBitxDiiBBirxCikBBCLYSYI4TYZ/Qz6EHyERwRTEp83hA7NTGF4HBrPvwuY7uzerF9DQVVUCiGZBNth9QkRLD5y0JdqiyqkFCyDxRMuR0SEcItk3wlJSQRYueFPWnueD7fuJCeNvQA3CKC0ZloRGQnJuNm4/5yENipBfe37883X0kJeflKTky2ma8e43rwy6Jf7GtOpGmICMij2gj39+HWPduhmfF30om/fZ/apcPt5gsURk9TTYCUxGSCbNzrS2O7s3rxSrt5U4eGoL+Zd4/6m0moQ+03lr7tWqLdbZ/qw1n5gpx6kTdllZxgu/wBJs4dx+INn9FjVHeb6aERoWZ17FZ8EqERthu41z6YyPJNS+jzijXzqyo4BEOyibZDchLqYOs8eT7fnsAl3+LTZzDpCz+0fYM8Xv2EB9V2eBgYpHT470nF4x4xVEDhAnkGuAfkjGO1UsqGUsrciV0j9fYPwCgpZTWgKYr0Zz/grpSyFlALGCCEKIWjcICrvWTlUkSUjGTvhnwES2zS21vw2/cejubLBTYMbbhzkEN++ohZ9G46gOEdXqFa7aq0sNIDcFyLwb9tDN5Vy5G65Geb6fZgma/SlUtTpGQR9uSjOWErC/Y49Tccu0LTKsVRq/Kvno7oTijPMuLRnqUJfFo2xaNSee59ZV+RzGn5ctAXwMwRs+jXdCAjO46mau2qNH/BmknB0Tr25vAZvPxcXwa3H0H1Os/QslPzAh3ZKq3MNb9xp383Mr5YiPdL1vKtD5qvHDyKfsKDajs8DP4/CPU87jWGa1LKXcbPXwM5k6W2NC8rAAlSyn0AOYR6QojmwDM5owoUeu5ygNmOGVM9hlnjZ/JSL4W188LRcwQXCQVOAUrvLtWCXrl8dEVKVy3DpzsXo3ZT4x8cwLTvZ8J7eQvQhpQkVCEm2g5BochUk56Htw/q4qXwe0uZv1QFBuH36kzuz56SuwDdoVc7WndvBcDpw2cIK5LnLzQylJR89AA06Ro2/baVStUrwtrtuem6xGTcTDQi3CNC0N2yHir71K9OyNCXuNJtIjJLZ5bWumdrM82J0Mi8fIVEhFjlq2J0RcpWLcsXu77I1ZyY/cNsXn0pT3E13N+bxLt5rKs372UQWsi2oM/6Y1eY1LqmzbQWPVvRtIvSGJ4/et5MEyA4IsTGs6xA6apl+WTnoty8Tf1+Box8JddGfysZdXjeParDQ9EnW5e9Z+1o/Pt049agMZBtvnnMWfka3nkM7Xu15fluxnpxJEcn4gQAIZEhdnQilO806Rq2/LaVilEVWfnTOl7o3Z523RWa81OHT5vVsbAioSTboDxPMtGc2PjrFipHVWKdcZoTlBGCKsRE2yEkFEOK/V531vYt+A4bTfoHed/9r/QTHNF2eFQ8yVNEjuJxNwyWJZZzbIunWdiwz/l+hJRyQ74XMiGn6lSirdz/g9Izi46tSctez7Nr1XbKGTUULHnkN369jo1fKwtbocXCmLT0dd7sMoXFJu8q/fkzqCKLoQqLwJCajHvDWNLnmSxGZqRzt0/eAprftHloli8wi0r6ddlKfl2m0JvUfa4OHXu3Z8vKP6gcXYl0O3oAfv5+3L19L1cPYP+OA1QysdEcO4tHySK4Fwsn+2YK/s834oYJhTSAZ+XSRE4fwdW+r6NPvWtVdr8v/7/2zjRKqupcw8/X3SCoOI/gFMQRoxEk4nBVUBONcEWNRk1U1DjFGOfEuBxiHFBRSYITiRokaqLRKyCiYAQRZ0ZFBIPXKA7XAWMiGGik+70/9mk4VV1V1D59uqvss5+1aq2qfeq8tWs63x6+YRzjRrm6zH3692HgSQOZMnYKO+y+A18u/rJZzYnx941n/H2uiM4mW2zCr/74qxyjANCz24Ys/OdiPvh8CZt06cyEOe9y3dG56/gA7yz6gi+WLWe3LQsvl0wYNZ4Jo9xr9erfm0NOOoznx05luyI1ASbe9yQT73sScN/lJfdcxq+OvYxbYkvYy9+YT4etulHbdTMaPlnEmgf347PLr83R6bB9Dzb45fl8+rNLaPy8eW2LtPoFMPresYy+142I+/b/NoNOPpxJYyazU6+d+HLxl82MTE30u/gi+l3sddCezJjq6jY8MnI0j4x0aYH3PrAvR598BE+NnkTPXjsXqTlRy9rrrs2///lvautq2eegvZg2dUbOc1b8fT613bagZtPNaPxsEWvs158lQ6/O7VPXbjR+6DLrd+izF40f5u4njRgxihEjRgFwyCH9Oeusk3joobGtXj/hgH378udHHuPQg/bntbnzC9Z2aCnVvERULm1tGLYys70kvYirufAcLh1sIeYDXc2sj6RpZtYFt5Q0ATjLzCZF9R22Bz6QVLwIQIyZk6bTq19vbn12BPVL67k9lkd+6PjfcPH3zitxdozGBv5z129Z+/KhLr/9pCdofO8dOh17Mg1vvZlbBKUMXorqAfz5+T9Rv3QZQy4YuvLY3RNHcOp3zqBDx47c9MAN1NXVUVNbw4ypMxl3/3gO6xSrMdDQyEdX3cGW91zj3FUfnsjytxay0bk/YtmcBSyZ9DKb/vxUatbsxBbDXcGgrz78lPfP/HXBfk2bNI0+/fpw99S7qV9az7CLVg37hj8xnHMObe7GW4i62houOWwPzho1mcZGcXiv7vTYZD1uf/o1du62AQfsuAUAT7z2DofssnVZ0/uZk2awe789GP7snSxfWs9tF62qazB0/DAuLrcmQEMjn984nI1/dwNWW8OSsU+w4u13WeeMwSyf9ybLnn2R9c49HevcmQ2vv8Kd8tEnLLrw8tbtF/DSpFfYs/+e3PfcvdQvq+eGC1Z52/xhwp2c9t0z6dixI0PvH0Jthzpqa2qY8dwsHn9gfDOtF55+ib0P3JOHX7ifZUvrueb8G1YeG/XUXZx48I/p0LEDv33gxpW/sWlTZzDm/nG5Qo0NfHnHb1jn6pugpob6p8bTsPAdOv/oFFYsmM9XL79ApwFH0uFbvaFhBVqyhCW3DCn6HtOsn5B2bYcktIc4hjbLlRTVGR0PPAvsDSwATsBl+ltZV8HMRgLjJD1sZn2A4UBnnFE4CPgPcA0wEDd7+BQYJKn50DeivedKSjslRsiV5EfIleRPe86V1Lnz1mV/UEuXvhtyJQGNks7Ma9sm/kDS4Nj9abjc4flcGt0CgUCgqgh7DIFAIBDIobGKvY3Kpc0Mg6R3gF3a6vUCgUCgErSHGYNXlF57vgGnt3etau5b0GofWtXct7TfZ3u+VVVKjApz+uqf8rXXSlsvaAWt1tarVq12TTAMgUAgEMghGIZAIBAI5BAMwyp+nwGttPWCVtBqbb1q1WrXtFmAWyAQCAS+HoQZQyAQCARyCIYhEAgEAjkEwxAIVDFmVjQRk5lt25Z9CWSHYBiqGDPrYGa7m1nxOoeB9s6rZnZMvMHMOpnZNcCTFepTq2Bm11W6DwFHJjefzezIUscl/Y+HVvHSVE5rlIfWncBwSXPNbF3gRaAB2AC4SFLhgsqFtU4DnpG0wFwO63uAo4B3gMGSvFKVmtlRkh4p0N4R+IWkqwucVkzrd6WOSypc7b65zo6S5kf315BUHzvWV1Lp8mir198Q2A9YKGnG6p5f4Px+wDm4olPgqkPdKukZD41tgVtx6WvOAnoCNwGjgaskeaeJNbNdgJ8DO+NqnrwB3CzpNV+tIvobAZ/J8+JiZjMl9UqjD3m6WwPbSfqbmXUG6iQtTvt12hNZNQyNwOzoBrnFHSXpFA+t4YWacWnBu0kqOx+Vmc2V1DO6fx5wgKRBZrYZ8ISkYrUrCmm9DuwuV7PieOBC4Du4+hdXSvqvcrUivQlAI/ATSf+I2g4FhgFPSiqzkAWY2XLgdeAh4EPyimtKurdMnZUXkvyLSpKLjJmNAy6R9LqZbQ7MBKYD2+JK0v7GQ+sw3AX915GOAb2Ay4CfSmpeMKG03sXAEOAj4LuS5vqcH9M5HGdYhuDemwG9gV/iBh9jPPX6AtcD/wSuBv4EbIRbjThRUtmzGjN7FTiAwsVWkdS8FOHqNU/DRTxvIGlbM9sOuFPSgb5amaLSOTkqcQOOAP6C+2NcDvRISdeAHwFzcOVKd/U8f1bs/uO4kX2zY2VqzY7dfwBXO7vp8cyE7+844H9xF4BHcYWWdkugsyFwJjAZeAr4MbB+Ap1Zhe4n+byic+bG7l8KjIrudwFe89R6ptBnA+wKTPHQqcNdtN/CXeBGA08DOyT8Dl8FtinQvg3wagK96bgBx9HA50DfqH3HBL/ZeuBtXJne/NvbCd/vbKBj3m9lThKtLN0q3oGKvnlYCzgeGBNd5PZPqFMXXdzmASNb8KedDAzAjer/BWwW05/vqTUT2BzoBHwM9Iwdm5ewf7W4IklLgPeB7VP4DroBF+FmDif4vsdC9ws9LlMvbkyfBo4tdKxMraLfl893iRtk3AqsG2sbgKtwOCTBe3wjybEyP7N5ecd8DYO3MS9D8+W4dvRf8jLyWbxlvR7DMuDfwBfAVriLqBdmdjZwLu5Ccoikd1vQnzOA3wGbAedJ+ihqPxA3g/DhCtxorhYYq2jpwcz2x43KvDCzfYHbgeeBLYH9gcfM7EHgWsXW9z00e+FmIQcDTwC+6/hbRPsVFrtP9Libb3+A98zsHJzR60W0uRutS3codWIBSpWaLasMbcRg5e1vSBpnZn/DLUv58pWZbSVpYbwxWodfkUAvXnxgad6xalinnmJmlwKdzexg4CfAYxXuU9WT1T2GfrgL0reBvwF/kTQ9oVYj8AmuxGj8wzTcfsWuLexuYsysDugi6fNY25pArTw338xsOm5/4ZVY21o4A3S4pB09tK7CjXrn4Zb0npTkfVEys+LFfyl/ryKmtwluT2Bz4DZJE6P2fkBvSTeVOj9P61+4MrbNDgH7Slrfp28F9PcBjpd0tud5g4AbgetwhlhAH+ASnBPBaE+9BpyhM1wJ3qbapAZ0klS2QTWzwZJGFmjvBAyU9FefvkXn1gCn4pa7DFcz/i5l8cLnQVYNQyPwGm75SOSNbFSmV0ykdSZuZFnog/yBpBs9tIbn6QhYBEyW9Fy5OkW0DeiHWzobKGlTz/NrpMKlqcxsJ0nzPLQacbOWphFm03uuuDFNi2hmVhRJUxJofgv3/R2DW3d/RNKtCXR2wzkj9MR95nOBmyS96qvVWphZLe5ifhzwXWCqpO8n0FkLWCapIaa7hqT0imu3Q7JqGAZTYprrM9KMRkxTcOvjH+Qd8/KMKTIC3gB3IXhQHl4xMc09cReTIyKts3FLS5+XPLGw1ibR+T1Z5eZ4m6RPPHW2LnW83OW4aHmruyKXYDN7GPceAa6RNMmzX49R+nfx3z56RV5jS9zexdAyn789cCzuAvkZzqnhIkklP8OvK2a2H+73ehjwCrAP7jtOdCE3s5eAgxS59UYBgxMl7Z1Sl9slmTQMaWJms3Br71cAF8Snu2Y2Sx4upiVeozPwgo+WmV2LMygLgT/jvIimS/pGwj7sg/NuGolbgmhyvzwJ+KGk55Po5r1GLe6ieX+Zz38aOEfSG9HjOcBgnFPBpZIO8Xz91Ef5ke5GOK+d43B7H49KuqjMcxuBqcCpkt6K2t6W1D1hX1rd+CXFzN7H/V7vAEZLWmxm/0j6m400Z0v61uraArlkcvM55T+HJP3BzKYA95vZ94CzoxFOKlZX0lK3EuTF6cCbuD/ZOEnLzKwl/bkZGCRpVqxtjJk9CowA9ixXyMzWwc08ugFjcS6rP8V5J80GyjIMwDpNRiFiQdNGrZkNKbc/TcQv/Ga2cdT2qa9OdH4X3CzteGB7nGHuLmkLT6mjcDOGyWb2JG5PxvvHEKPsfZIK8AgwCPgB0GBmY2j5f+hLM+ulKKDTzHrTfJM8kEcmZwxpjgzzgqzqcO6cRwAnAnf4LCUV0a8DTgCOlDTQ47z4Gm1/nCvsQcCWCTd635C0s++xIs8fg/N5fxHncbU+ztf8XEmzS52bp7NA0nZFjr0lqUe5WrHzrsRFKxsuSGsFLhr91546S3FLIZcBz0lSkpG+mdVJWhGtlQ9i1fd5L27mMdFTb6SkwT7ntCWxvbDjgO8B6+A2j8crWZR3H5wx/TBq2hy39+cdyZ4p0vB5bU83YB/P5zfzvcZFb74NLPbUWoxznV0cu32MixDu2oL31An4Pm5E9jHwQAKNeRQIQsOt6fvGWMyJ3a/FGYkuCfr0GHBYgfYBwOMJ9M7HzV6+EWvrjvNkOT+B1su4CO9LcdHT3kFaFIjHiD7zM4BJaehV6w3nIjwQt4S5qIU6uwDfBDpU+n19HW5ZnTHU4tbfu+FcJV83swG4P3Bn+a3lD1IBFz8zWx84Q9L1afU7DaIljiPl78p5OnAabrmnKc9Sb+AG4B5JIzy0Wpy+IjqvBy6+44W8Pu0NDJD0d0+9WcDBkhbltW+M27D03i8ys+640e+xwHbAlbiRfll9S2ufKqY3P+pPsbQTXjm00qTUbMbMOksqewnIzPpLmmRF8qLJIx9aFsmqYRiJC9J6Bbc2/i6wFy5Pjpcfd9pES0eH4lIKgPP8mSDP5R8zu6DUcUm3JOjbAFzytZ5R01xgqCSvgKGY7zvk+r83uauu46G1BvBDVnlKzQUWAMfJ38f/dUm7+B7z0P8mkbuppLJSZkcbskW/K9/v0cwWA9MobBgkqb+PXpokHSAU0bpK0pVm9scChyWPfGhZJJObz8AeuDxGjVHwzCJcvqSPVnNeq2JmXXF7Af8HzML9eQcAt5hZP0kfljo/jy6x+2fgNoibSDQakDQOGJfk3Dyd2pZqxLTqgXvMbHfcSPhKIh//BHLLEx4rC0lzzOxynPEql1pgbVq24RznrUpe/FfDmtH32OLZTGQUanDJJx9Kq4NZIaszhlSWMtImmsnMVl68gpn9DBd5WzLSt4Rui5cjzOyKEoclj7TbaZG2j3/eTCbnEP5RvMU8ry7EJas7vEydVH+baS9NpUlrzGbM7FlJ+7W4cxkjq4bhP7hsleB+hNvGHqMKRd6a2XwVSS1hZm9K2qHQsTJ0W3xxMbMLCzSvhfMY2VBS0UpjrUXaPv5pkqLnVdp7DN9RAU8m38C71qA1jFY0Q1uKGzSsNPpKkMI7S2R1KWk3YFPgvbz2rVnl1lYJSm2uVTSEX9LNTfejDexzgZNxroA3FzuvlUnbxz9Nukv6JoCZ3YVbrtxK/gViUq0bEDcKhQLv0nytKuEU3NLpT/LaKz54qGayahiG4SJjcxOHUwUAAAOWSURBVFIvRN4nw3AucpVg3SJeFIbz5y6bKAq4aTrYw8xyqnMlmRWZ2QbABbjN3nuBXkqQWiMtJD0KPBrz8T8f2NTM7iCBj3/KfNV0R1JDFMHrXTUs7ZFtioF3rcEv4g/MrMnN9AN5pl2JsTPOKOyL+z9MBe5sSSezQFaXkkp5n8xpGum1NUU8KFYi6WQPre0oMStqWnrx0BsKHAn8HpcfyTvYqC2IjNfRuCCmSnrYpOZ5lXK/Ugm8aw0sxdK2Mc2HcLFBTdH0xwHrSTqm+FmBrBqGolGxSSNmqw1zZSovVV4dXzPbA1fa02tWFK3n1+MigQulF6/IhS7gh5mdj1t+WwsXOPYg8FSVGIbUStvGNF+VtNvq2gK5ZHUpaZqZnSbpD/FGMzsV/2IxqWFmJ5Y4LEl/8pDbJt8oRCLTzWwb375JqvE9J1B9SBoGDIsF3o0GuprZL/AIvGsl4i7BBwN/BZD0kfnnCmtilpn1lfQSgLlswy1O+NjeyeqMYVPc2upyVhmCPXBeI0dUKp7BXD2GZs24PY9ukso25FmYFQXSIUngXSv1YzLOkeEDXDzPjpFRqANeL+axtxrNecAOuKyt4Co1zsNVnlOlPBCrnUzOGCR9DOxtrjJX017D4/LM3582ks5puh8lE/shbkPuJeBaT7mqnBUFqo+EgXetQZqlbZvwSr0ecGRyxlDNRKOjwbhAqJdxBd/fTKBTlbOiQGVJK/CurTGz8/IDPwOtRzAMVYSZnY2LD3gauD7fnTahZnxWNLfSs6JAZUkr8K6tMbOFkraqdD+yQjAMVUTk+fMJ8CmFPX/CemigRcTdsc1lGU4aeNemmNl7krasdD+yQib3GKqYxCUMA4EySSXwrgKEEWwbEmYMgUCGqNbAu6hviylsAAxXJyUMZNuIYBiqiNX8MUIQWaDFmFkHSV+t/pmBLBMMQyCQIaolxXygugnRrIFAtqiW7LOBKias2QUC2WLjUmVflaDka6D9EQxDIJAt0i4VGmiHhD2GQCBDhD2GQDmEPYZAIFuEmUJgtYQZQyCQIcysK3AM0AOYA9wtaUVlexWoNoJhCAQyhJk9iIt+ngocCrwr6dzK9ipQbQTDEAhkiLxcSXXAK2HPIZBP2GMIBLJFPFdSWEIKFCTMGAKBDFHNuZIC1UMwDIFAIBDIISwlBQKBQCCHYBgCgUAgkEMwDIFAIBDIIRiGQCAQCOQQDEMgEAgEcvh/xpbxDpvWsegAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.heatmap(dataframe.corr(), annot=True, fmt='.1f') # 查看特征与price的相关性系数，正相关和负相关"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "x = dataframe['RM']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "y = dataframe['price']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "rm_to_price = {_x : _y for _x, _y in zip(x, y)}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "ename": "KeyError",
     "evalue": "7",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mKeyError\u001b[0m                                  Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-38-0a2212210daf>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mrm_to_price\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m7\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;31mKeyError\u001b[0m: 7"
     ]
    }
   ],
   "source": [
    "rm_to_price[7]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "person_and_age={\n",
    "    'A周杰伦':'40',\n",
    "    'B刘德华':'60',\n",
    "    'C蔡徐坤':'25'\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('A周杰伦', '40'), ('B刘德华', '60'), ('C蔡徐坤', '25')]"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "list(person_and_age.items())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['A周杰伦', 'B刘德华', 'C蔡徐坤']"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sorted(person_and_age)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_first_items(element):\n",
    "    return element[1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 173,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('C蔡徐坤', '25'), ('A周杰伦', '40'), ('B刘德华', '60')]"
      ]
     },
     "execution_count": 173,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sorted(person_and_age.items(),key=lambda e:e[1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [],
   "source": [
    "def find_price_by_similar(history_price,query_x,topn=3):\n",
    "    return np.mean([p for x ,p in sorted(history_price.items(),key=lambda x_y:(x_y[0]-query_x)**2)[:topn]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "14.6"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "find_price_by_similar(rm_to_price,4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PathCollection at 0x7f6bfcdc8e90>"
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(x,y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [],
   "source": [
    "real_y=[3,6,7]\n",
    "y_hats=[3,4,7]\n",
    "y_hats_2=[3,6,6]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [],
   "source": [
    "def loss(y,yhat):\n",
    "    return np.mean((np.array(y)-np.array(yhat))**2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.3333333333333333"
      ]
     },
     "execution_count": 82,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "loss(real_y,y_hats_2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [],
   "source": [
    "import random"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "metadata": {},
   "outputs": [],
   "source": [
    "VAR_MAX,VAR_MIN=100,-100\n",
    "min_loss=float('inf')\n",
    "best_k,best_b=None,None"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "metadata": {},
   "outputs": [],
   "source": [
    "def model(x,k,b):\n",
    "    return x*k+b"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 126,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "在0时刻我找到了更好的k:86和b:8,这个时候的loss是:279575.98108223715\n",
      "在1时刻我找到了更好的k:70和b:12,这个时候的loss是:186247.93376739128\n",
      "在2时刻我找到了更好的k:27和b:-56,这个时候的loss是:8510.173659413045\n",
      "在7时刻我找到了更好的k:4和b:-54,这个时候的loss是:2697.7970180869565\n",
      "在44时刻我找到了更好的k:11和b:-6,这个时候的loss是:1693.58679977668\n",
      "在59时刻我找到了更好的k:-4和b:56,这个时候的loss是:197.54571690118578\n",
      "在85时刻我找到了更好的k:10和b:-32,这个时候的loss是:113.11267332015808\n"
     ]
    }
   ],
   "source": [
    "total_times=1000\n",
    "\n",
    "for t in range(total_times):\n",
    "    k,b=random.randint(VAR_MIN,VAR_MAX),random.randint(VAR_MIN,VAR_MAX)\n",
    "    loss_=loss(y,model(x,k,b))\n",
    "    \n",
    "    if loss_<min_loss:\n",
    "        min_loss=loss_\n",
    "        best_k, best_b=k, b\n",
    "        print('在{}时刻我找到了更好的k:{}和b:{},这个时候的loss是:{}'.format(t,k,b,loss_))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "metadata": {},
   "outputs": [],
   "source": [
    "def partial_k(x,y,k_n,b_b):\n",
    "    return 2*np.mean((y-(k*x+b))*(-x))\n",
    "def partial_b(x,y,k_n,b_b):\n",
    "    return 2*np.mean((y-(k*x+b))*(-1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 167,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "在0时刻我找到了更好的k:20.900440034313437和b:-58.01917688609491,这个时候的loss是:2692.787548834709\n",
      "在1时刻我找到了更好的k:20.801700439727412和b:-58.03822582836229,这个时候的loss是:2627.0714804513773\n",
      "在2时刻我找到了更好的k:20.70377449420864和b:-58.0571478750883,这个时候的loss是:2562.7115141236045\n",
      "在3时刻我找到了更好的k:20.606655530803376和b:-58.075944065969544,这个时候的loss是:2499.683194141005\n",
      "在4时刻我找到了更好的k:20.510336937186086和b:-58.094615432183495,这个时候的loss是:2437.962482962302\n",
      "在5时刻我找到了更好的k:20.41481215521184和b:-58.11316299645828,这个时候的loss是:2377.5257542345694\n",
      "在6时刻我找到了更好的k:20.320074680472366和b:-58.1315877731419,这个时候的loss是:2318.349785927666\n",
      "在7时刻我找到了更好的k:20.226118061855722和b:-58.14989076827093,这个时候的loss是:2260.4117535820014\n",
      "在8时刻我找到了更好的k:20.132935901109608和b:-58.16807297963859,这个时候的loss是:2203.6892236677622\n",
      "在9时刻我找到了更好的k:20.040521852408233和b:-58.186135396862305,这个时候的loss是:2148.1601470537526\n",
      "在10时刻我找到了更好的k:19.94886962192274和b:-58.2040790014507,这个时候的loss是:2093.802852584075\n",
      "在11时刻我找到了更好的k:19.85797296739515和b:-58.22190476687003,这个时候的loss是:2040.5960407608704\n",
      "在12时刻我找到了更好的k:19.767825697715796和b:-58.23961365861009,这个时候的loss是:1988.5187775313725\n",
      "在13时刻我找到了更好的k:19.67842167250422和b:-58.257206634249556,这个时候的loss是:1937.5504881775635\n",
      "在14时刻我找到了更好的k:19.58975480169351和b:-58.27468464352083,这个时候的loss是:1887.6709513067658\n",
      "在15时刻我找到了更好的k:19.501819045118015和b:-58.29204862837432,这个时候的loss是:1838.86029294148\n",
      "在16时刻我找到了更好的k:19.414608412104492和b:-58.3092995230422,这个时候的loss是:1791.0989807068715\n",
      "在17时刻我找到了更好的k:19.32811696106655和b:-58.32643825410167,这个时候的loss是:1744.3678181142825\n",
      "在18时刻我找到了更好的k:19.242338799102434和b:-58.34346574053765,这个时候的loss是:1698.6479389391948\n",
      "在19时刻我找到了更好的k:19.157268081596133和b:-58.36038289380503,这个时候的loss是:1653.9208016921066\n",
      "在20时刻我找到了更好的k:19.072899011821704和b:-58.37719061789033,这个时候的loss是:1610.1681841807765\n",
      "在21时刻我找到了更好的k:18.98922584055089和b:-58.393889809372915,这个时候的loss是:1567.3721781623542\n",
      "在22时刻我找到了更好的k:18.906242865663916和b:-58.4104813574857,这个时候的loss是:1525.515184083902\n",
      "在23时刻我找到了更好的k:18.82394443176349和b:-58.42696614417532,这个时候的loss是:1484.5799059098752\n",
      "在24时刻我找到了更好的k:18.742324929791966和b:-58.443345044161845,这个时候的loss是:1444.549346035114\n",
      "在25时刻我找到了更好的k:18.661378796651643和b:-58.459618924998004,这个时候的loss是:1405.4068002819631\n",
      "在26时刻我找到了更好的k:18.58110051482818和b:-58.47578864712789,这个时候的loss是:1367.135852980118\n",
      "在27时刻我找到了更好的k:18.501484612017077和b:-58.49185506394524,这个时候的loss是:1329.7203721278424\n",
      "在28时刻我找到了更好的k:18.422525660753244和b:-58.50781902185116,这个时候的loss是:1293.1445046332353\n",
      "在29时刻我找到了更好的k:18.344218278043588和b:-58.52368136031147,这个时候的loss是:1257.3926716342135\n",
      "在30时刻我找到了更好的k:18.266557125002613和b:-58.5394429119135,这个时候的loss是:1222.4495638959258\n",
      "在31时刻我找到了更好的k:18.189536906491014和b:-58.555104502422445,这个时候的loss是:1188.300137284327\n",
      "在32时刻我找到了更好的k:18.113152370757216和b:-58.57066695083731,这个时候的loss是:1154.9296083146523\n",
      "在33时刻我找到了更好的k:18.03739830908187和b:-58.58613106944628,这个时候的loss是:1122.323449773575\n",
      "在34时刻我找到了更好的k:17.96226955542524和b:-58.601497663881794,这个时候的loss是:1090.467386413818\n",
      "在35时刻我找到了更好的k:17.88776098607751和b:-58.61676753317501,这个时候的loss是:1059.347390720051\n",
      "在36时刻我找到了更好的k:17.813867519311916和b:-58.63194146980992,这个时候的loss是:1028.9496787448793\n",
      "在37时刻我找到了更好的k:17.74058411504076和b:-58.647020259776994,这个时候的loss是:999.2607060137876\n",
      "在38时刻我找到了更好的k:17.667905774474214和b:-58.66200468262641,这个时候的loss是:970.2671634978965\n",
      "在39时刻我找到了更好的k:17.595827539781933和b:-58.67689551152079,这个时候的loss是:941.9559736534255\n",
      "在40时刻我找到了更好的k:17.524344493757443和b:-58.69169351328756,这个时候的loss是:914.314286526756\n",
      "在41时刻我找到了更好的k:17.45345175948526和b:-58.706399448470854,这个时候的loss是:887.3294759240173\n",
      "在42时刻我找到了更好的k:17.383144500010772和b:-58.721014071382996,这个时候的loss是:860.9891356441499\n",
      "在43时刻我找到了更好的k:17.31341791801278和b:-58.73553813015557,这个时候的loss是:835.2810757743783\n",
      "在44时刻我找到了更好的k:17.244267255478768和b:-58.749972366790054,这个时候的loss是:810.1933190470814\n",
      "在45时刻我找到了更好的k:17.175687793382796和b:-58.76431751720806,这个时候的loss是:785.7140972570554\n",
      "在46时刻我找到了更好的k:17.10767485136606和b:-58.77857431130115,这个时候的loss是:761.8318477381591\n",
      "在47时刻我找到了更好的k:17.04022378742005和b:-58.79274347298023,这个时候的loss是:738.5352098983808\n",
      "在48时刻我找到了更好的k:16.97332999757232和b:-58.80682572022457,这个时候的loss是:715.8130218123586\n",
      "在49时刻我找到了更好的k:16.90698891557482和b:-58.82082176513043,这个时候的loss是:693.6543168704084\n",
      "在50时刻我找到了更好的k:16.84119601259479和b:-58.83473231395921,这个时候的loss是:672.0483204831355\n",
      "在51时刻我找到了更好的k:16.775946796908173和b:-58.84855806718529,这个时候的loss是:650.9844468407064\n",
      "在52时刻我找到了更好的k:16.71123681359557和b:-58.86229971954345,这个时候的loss是:630.4522957258914\n",
      "在53时刻我找到了更好的k:16.64706164424065和b:-58.875957960075915,这个时候的loss是:610.4416493799858\n",
      "在54时刻我找到了更好的k:16.58341690663106和b:-58.88953347217896,这个时候的loss是:590.942469420743\n",
      "在55时刻我找到了更好的k:16.520298254461764和b:-58.90302693364921,这个时候的loss是:571.9448938114624\n",
      "在56时刻我找到了更好的k:16.457701377040827和b:-58.916439016729484,这个时候的loss是:553.4392338803941\n",
      "在57时刻我找到了更好的k:16.39562199899761和b:-58.929770388154346,这个时候的loss是:535.4159713896224\n",
      "在58时刻我找到了更好的k:16.33405587999334和b:-58.9430217091952,这个时候的loss是:517.8657556526271\n",
      "在59时刻我找到了更好的k:16.27299881443408和b:-58.95619363570509,这个时候的loss是:500.7794006997081\n",
      "在60时刻我找到了更好的k:16.212446631186015和b:-58.96928681816306,这个时候的loss是:484.14788249049803\n",
      "在61时刻我找到了更好的k:16.15239519329311和b:-58.98230190171822,这个时候的loss是:467.9623361727759\n",
      "在62时刻我找到了更好的k:16.092840397697042和b:-58.995239526233405,这个时候的loss是:452.2140533868274\n",
      "在63时刻我找到了更好的k:16.033778174959462和b:-59.00810032632848,这个时候的loss是:436.8944796145996\n",
      "在64时刻我找到了更好的k:15.975204488986503和b:-59.02088493142333,这个时候的loss是:421.9952115729096\n",
      "在65时刻我找到了更好的k:15.917115336755568和b:-59.03359396578043,这个时候的loss是:407.5079946499884\n",
      "在66时刻我找到了更好的k:15.859506748044351和b:-59.046228048547135,这个时候的loss是:393.42472038463944\n",
      "在67时刻我找到了更好的k:15.802374785162066和b:-59.05878779379758,这个时候的loss是:379.73742398731156\n",
      "在68时刻我找到了更好的k:15.745715542682893和b:-59.07127381057424,这个时候的loss是:366.4382819024005\n",
      "在69时刻我找到了更好的k:15.689525147181604和b:-59.083686702929185,这个时候的loss是:353.5196094110927\n",
      "在70时刻我找到了更好的k:15.63379975697135和b:-59.09602706996495,这个时候的loss是:340.9738582740893\n",
      "在71时刻我找到了更好的k:15.578535561843603和b:-59.108295505875084,这个时候的loss是:328.79361441355064\n",
      "在72时刻我找到了更好的k:15.52372878281023和b:-59.1204925999844,这个时候的loss是:316.97159563361464\n",
      "在73时刻我找到了更好的k:15.469375671847665和b:-59.13261893678886,这个时候的loss是:305.50064937885446\n",
      "在74时刻我找到了更好的k:15.415472511643202和b:-59.14467509599511,这个时候的loss是:294.3737505300513\n",
      "在75时刻我找到了更好的k:15.362015615343347和b:-59.15666165255978,这个时候的loss是:283.5839992366641\n",
      "在76时刻我找到了更好的k:15.309001326304244和b:-59.16857917672835,这个时候的loss是:273.12461878539506\n",
      "在77时刻我找到了更好的k:15.256426017844133和b:-59.180428234073794,这个时候的loss是:262.98895350425204\n",
      "在78时刻我找到了更好的k:15.204286092997851和b:-59.19220938553484,这个时候的loss是:253.17046670152715\n",
      "在79时刻我找到了更好的k:15.152577984273336和b:-59.20392318745395,这个时候的loss是:243.6627386391109\n",
      "在80时刻我找到了更好的k:15.101298153410124和b:-59.215570191615,这个时候的loss是:234.45946453958058\n",
      "在81时刻我找到了更好的k:15.050443091139837和b:-59.22715094528059,这个时候的loss是:225.5544526265036\n",
      "在82时刻我找到了更好的k:15.000009316948617和b:-59.238665991229134,这个时候的loss是:216.9416221974062\n",
      "在83时刻我找到了更好的k:14.949993378841521和b:-59.25011586779158,这个时候的loss是:208.61500172887284\n",
      "在84时刻我找到了更好的k:14.900391853108836和b:-59.261501108887856,这个时候的loss是:200.56872701324377\n",
      "在85时刻我找到了更好的k:14.851201344094315和b:-59.272822244063015,这个时候的loss是:192.79703932638992\n",
      "在86时刻我找到了更好的k:14.802418483965312和b:-59.28407979852309,这个时候的loss是:185.29428362605233\n",
      "在87时刻我找到了更好的k:14.754039932484796和b:-59.295274293170614,这个时候的loss是:178.05490678024353\n",
      "在88时刻我找到了更好的k:14.706062376785237和b:-59.30640624463994,这个时候的loss是:171.07345582521106\n",
      "在89时刻我找到了更好的k:14.658482531144344和b:-59.31747616533216,这个时候的loss是:164.34457625247995\n",
      "在90时刻我找到了更好的k:14.611297136762639和b:-59.32848456344982,这个时候的loss是:157.86301032449165\n",
      "在91时刻我找到了更好的k:14.564502961542857和b:-59.339431943031315,这个时候的loss是:151.62359541836685\n",
      "在92时刻我找到了更好的k:14.518096799871149和b:-59.350318803985004,这个时候的loss是:145.62126239733016\n",
      "在93时刻我找到了更好的k:14.472075472400078和b:-59.36114564212307,这个时候的loss是:139.85103400933787\n",
      "在94时刻我找到了更好的k:14.426435825833405和b:-59.37191294919506,这个时候的loss是:134.30802331246238\n",
      "在95时刻我找到了更好的k:14.381174732712614和b:-59.38262121292119,这个时候的loss是:128.9874321265875\n",
      "在96时刻我找到了更好的k:14.336289091205211和b:-59.39327091702535,这个时候的loss是:123.88454951098466\n",
      "在97时刻我找到了更好的k:14.291775824894748和b:-59.403862541267856,这个时候的loss是:118.99475026733988\n",
      "在98时刻我找到了更好的k:14.24763188257256和b:-59.414396561477936,这个时候的loss是:114.3134934678111\n",
      "在99时刻我找到了更好的k:14.20385423803122和b:-59.42487344958592,这个时候的loss是:109.83632100770403\n",
      "在100时刻我找到了更好的k:14.160439889859681和b:-59.43529367365519,这个时候的loss是:105.55885618235887\n",
      "在101时刻我找到了更好的k:14.1173858612401和b:-59.445657697913894,这个时候的loss是:101.47680228784766\n",
      "在102时刻我找到了更好的k:14.07468919974632和b:-59.45596598278634,这个时候的loss是:97.58594124508998\n",
      "在103时刻我找到了更好的k:14.032346977144009和b:-59.46621898492417,这个时候的loss是:93.88213224699847\n",
      "在104时刻我找到了更好的k:13.990356289192436和b:-59.47641715723728,这个时候的loss是:90.36131042827519\n",
      "在105时刻我找到了更好的k:13.948714255447868和b:-59.48656094892448,这个时候的loss是:87.01948555748321\n",
      "在106时刻我找到了更好的k:13.907418019068585和b:-59.4966508055039,这个时候的loss是:83.85274075102616\n",
      "在107时刻我找到了更好的k:13.866464746621482和b:-59.50668716884314,这个时候的loss是:80.85723120867304\n",
      "在108时刻我找到了更好的k:13.825851627890266和b:-59.51667047718921,这个时候的loss是:78.02918297027243\n",
      "在109时刻我找到了更好的k:13.78557587568522和b:-59.52660116519815,这个时候的loss是:75.36489169330503\n",
      "在110时刻我找到了更好的k:13.745634725654522和b:-59.5364796639645,这个时候的loss是:72.86072145093122\n",
      "在111时刻我找到了更好的k:13.706025436097118和b:-59.54630640105045,这个时候的loss是:70.51310355019352\n",
      "在112时刻我找到了更好的k:13.666745287777124和b:-59.55608180051481,这个时候的loss是:68.31853537004122\n",
      "在113时刻我找到了更好的k:13.627791583739745和b:-59.56580628294169,这个时候的loss是:66.27357921884894\n",
      "在114时刻我找到了更好的k:13.589161649128712和b:-59.575480265469004,这个时候的loss是:64.37486121110717\n",
      "在115时刻我找到了更好的k:13.55085283100521和b:-59.585104161816666,这个时候的loss是:62.61907016296694\n",
      "在116时刻我找到了更好的k:13.51286249816828和b:-59.59467838231463,这个时候的loss是:61.00295650632672\n",
      "在117时刻我找到了更好的k:13.475188040976711和b:-59.60420333393066,这个时候的loss是:59.52333122115554\n",
      "在118时刻我找到了更好的k:13.43782687117238和b:-59.61367942029787,这个时候的loss是:58.17706478574922\n",
      "在119时刻我找到了更好的k:13.400776421705036和b:-59.623107041742045,这个时候的loss是:56.96108614462375\n",
      "在120时刻我找到了更好的k:13.36403414655853和b:-59.63248659530876,这个时候的loss是:55.872381693753546\n",
      "在121时刻我找到了更好的k:13.32759752057847和b:-59.64181847479024,这个时候的loss是:54.90799428286771\n",
      "在122时刻我找到了更好的k:13.291464039301268和b:-59.651103070752036,这个时候的loss是:54.06502223452094\n",
      "在123时刻我找到了更好的k:13.255631218784611和b:-59.660340770559436,这个时候的loss是:53.34061837966258\n",
      "在124时刻我找到了更好的k:13.220096595439315和b:-59.66953195840371,这个时候的loss是:52.73198910942949\n",
      "在125时刻我找到了更好的k:13.184857725862546和b:-59.67867701532811,这个时候的loss是:52.236393442894396\n",
      "在126时刻我找到了更好的k:13.149912186672422和b:-59.68777631925367,这个时候的loss是:51.851142110505634\n",
      "在127时刻我找到了更好的k:13.115257574343959和b:-59.69683024500478,这个时候的loss是:51.57359665295756\n",
      "在128时刻我找到了更好的k:13.080891505046369和b:-59.70583916433457,这个时候的loss是:51.40116853523686\n",
      "在129时刻我找到了更好的k:13.046811614481687和b:-59.71480344595006,这个时候的loss是:51.33131827559244\n"
     ]
    }
   ],
   "source": [
    "VAR_MAX,VAR_MIN=100,-100\n",
    "k,b=random.randint(VAR_MIN,VAR_MAX),random.randint(VAR_MIN,VAR_MAX)\n",
    "min_loss=float('inf')\n",
    "best_k,best_b=None,None\n",
    "\n",
    "total_times=1000\n",
    "alpha=1e-4\n",
    "for t in range(total_times):\n",
    "    k=k+(-1)*partial_k(x,y,k,b)*alpha\n",
    "    b=b+(-1)*partial_b(x,y,k,b)*alpha\n",
    "    loss_=loss(y,model(x,k,b))\n",
    "    if loss_<min_loss:\n",
    "        min_loss=loss_\n",
    "        best_k, best_b=k, b\n",
    "        print('在{}时刻我找到了更好的k:{}和b:{},这个时候的loss是:{}'.format(t,k,b,loss_))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 168,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "51.33131827559244"
      ]
     },
     "execution_count": 168,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "min_loss"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "plt.scatter(x,y)\n",
    "plt.scatter()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
